Cody

# Problem 1199. ASCII art

Solution 190851

Submitted on 14 Jan 2013 by Christopher
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% chars=char([32:126,161:255]); bitmap=mean(double(imread('http://www.alfnie.com/software/monobitmap.bmp'))/255,3); bitmap=reshape(bitmap,size(bitmap,1),[],numel(chars)); img=imread('cameraman.tif'); img=sqrt(double(img(ceil(.25:.25:end),ceil(.25:.25:end)))/256); img=img(1:floor(size(img,1)/size(bitmap,1))*size(bitmap,1),1:floor(size(img,2)/size(bitmap,2))*size(bitmap,2)); str=gray2char(img,chars,bitmap) assert(isequal(size(str),[39 73])); [i,loc]=ismember(str,chars); assert(all(all(i))); img=permute(reshape(img,size(bitmap,1),size(img,1)/size(bitmap,1),size(bitmap,2),size(img,2)/size(bitmap,2)),[1,3,2,4]); d=mean(mean(mean(abs(bitmap(:,:,loc)-img(:,:,:)).^2,3),2),1); assert(d<=0.102);

numtilesx = 73 numtilesy = 39 str = Columns 1 through 16 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 95 32 32 32 32 32 32 32 32 32 32 32 32 32 103 216 202 32 32 32 32 32 32 32 32 32 32 32 81 202 202 202 202 32 32 32 32 32 32 32 32 32 95 198 202 202 202 202 202 32 32 32 32 32 32 32 32 32 198 202 202 202 202 202 202 32 32 32 32 32 32 32 32 32 32 209 202 202 202 202 202 32 32 32 32 32 32 32 32 32 32 32 175 209 202 202 202 32 32 32 32 32 32 32 32 32 32 32 32 32 198 202 202 32 32 32 32 32 32 32 32 32 32 32 32 32 202 202 202 32 32 32 32 32 32 32 32 32 32 32 32 103 202 202 202 187 187 187 44 46 32 32 32 32 32 32 103 202 202 202 202 81 81 169 169 178 46 32 32 184 32 113 202 202 202 202 202 81 81 191 191 191 81 81 81 209 81 202 202 202 202 202 202 209 209 209 209 209 209 209 209 209 202 202 202 202 202 202 202 169 183 94 184 184 96 178 178 81 202 202 202 202 202 202 202 94 187 187 187 187 178 96 113 202 202 202 202 202 202 202 202 183 96 96 96 96 96 96 202 202 202 202 202 202 202 202 202 96 187 187 187 187 187 169 202 202 202 202 202 202 202 202 202 96 96 96 96 96 96 96 96 175 209 202 202 202 202 202 202 187 96 96 96 96 96 187 187 96 96 202 202 202 202 202 202 187 96 96 46 96 187 46 58 96 32 202 202 209 202 202 202 187 94 220 206 96 96 96 96 96 96 202 202 202 202 202 202 178 187 96 187 187 178 187 187 96 189 202 202 202 209 202 209 189 187 81 187 81 187 189 187 187 209 202 202 202 209 202 202 96 96 96 187 58 187 187 46 187 81 202 202 202 202 202 202 168 187 187 179 187 96 161 187 249 113 202 202 209 202 202 209 169 206 169 206 187 171 187 169 96 81 202 202 202 209 202 81 Columns 17 through 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 95 95 32 32 32 32 32 32 32 32 32 32 32 32 172 216 202 202 32 32 32 32 32 32 32 32 32 32 32 32 198 202 202 202 32 32 32 32 32 32 32 32 32 32 32 113 202 202 202 209 32 32 32 32 32 32 32 32 32 32 95 202 202 202 254 206 32 32 32 103 103 216 216 216 216 216 202 202 202 209 202 103 32 95 198 202 202 202 202 202 202 202 202 202 254 168 209 202 103 202 202 202 202 202 202 202 202 202 202 202 202 81 255 81 202 202 202 202 202 202 202 202 202 202 202 202 202 254 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 103 202 202 202 202 202 202 202 202 202 202 202 202 202 81 202 202 202 202 202 202 202 202 202 202 202 202 202 202 216 202 202 202 202 202 202 202 202 202 202 202 202 202 209 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 32 202 202 202 202 202 202 202 202 202 202 202 202 202 202 175 32 202 202 202 202 202 202 202 202 202 202 202 202 202 202 32 187 202 202 202 202 202 202 202 202 202 202 202 202 202 209 209 209 202 202 202 202 202 202 202 202 202 202 202 202 209 96 96 96 202 202 202 202 202 202 202 202 202 202 202 202 175 96 96 96 202 202 202 202 202 202 202 202 202 202 202 209 58 58 46 113 202 202 202 202 202 202 202 202 202 202 202 178 96 96 96 202 202 202 202 202 202 202 202 202 202 202 220 96 96 96 81 202 202 202 202 202 202 202 202 202 202 202 46 96 32 96 81 209 202 202 202 202 202 202 202 202 202 209 187 187 96 95 202 195 202 202 202 202 202 202 202 202 202 81 81 81 81 113 202 77 209 202 202 202 202 202 202 202 209 187 187 189 169 209 202 35 220 202 202 202 202 202 209 209 96 187 187 187 189 202 32 175 58 182 202 202 202 202 202 209 187 187 178 58 113 209 32 187 183 113 209 202 202 202 202 254 187 59 249 169 202 32 183 209 187 209 202 202 209 209 202 202 189 187 191 113 202 32 96 187 Columns 33 through 48 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 95 95 95 32 32 32 32 32 32 32 32 32 32 32 32 32 202 202 202 254 191 95 32 32 32 32 32 32 32 32 32 32 202 202 202 202 202 202 254 32 32 32 32 32 32 32 32 32 202 202 202 209 219 202 202 103 191 32 32 32 32 32 32 32 219 202 32 209 186 219 209 209 209 230 169 230 32 32 32 32 81 32 32 46 187 81 202 195 255 81 209 209 174 78 32 32 202 81 255 209 96 203 202 202 202 202 81 254 95 95 95 81 202 202 202 175 32 182 202 202 202 81 202 209 254 175 175 175 202 202 209 189 161 95 219 219 206 175 202 202 202 32 32 32 202 198 202 254 96 175 176 32 32 161 103 202 175 32 32 32 202 202 202 202 254 95 95 95 95 103 202 209 32 32 32 32 202 202 202 202 202 202 203 202 202 202 202 112 32 32 32 32 202 202 202 202 202 81 202 95 202 202 202 195 32 32 32 32 202 202 202 202 202 202 202 202 103 209 254 32 32 32 32 32 202 202 202 202 209 202 32 202 202 202 202 95 32 32 32 32 175 209 202 202 202 254 32 168 32 32 202 195 32 32 32 32 32 32 113 202 202 202 32 168 32 32 184 202 254 32 32 32 32 32 202 77 168 202 32 168 32 113 209 209 202 254 32 32 32 113 202 35 32 202 32 168 32 179 178 58 209 202 ...

2   Pass
%% chars=char([32:126,161:255]); bitmap=mean(double(imread('http://www.alfnie.com/software/monobitmap.bmp'))/255,3); bitmap=reshape(bitmap,size(bitmap,1),[],numel(chars)); img=load('clown.mat'); img=mean(ind2rgb(img.X,img.map),3); img=double(img(ceil(.25:.25:end),ceil(.25:.25:end))).^.25; img=img(1:floor(size(img,1)/size(bitmap,1))*size(bitmap,1),1:floor(size(img,2)/size(bitmap,2))*size(bitmap,2)); str=gray2char(img,chars,bitmap) assert(isequal(size(str),[30 91])); [i,loc]=ismember(str,chars); assert(all(all(i))); img=permute(reshape(img,size(bitmap,1),size(img,1)/size(bitmap,1),size(bitmap,2),size(img,2)/size(bitmap,2)),[1,3,2,4]); d=mean(mean(mean(abs(bitmap(:,:,loc)-img(:,:,:)).^2,3),2),1); assert(d<=0.172);

numtilesx = 91 numtilesy = 30 str = Columns 1 through 16 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 191 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 187 183 32 32 32 32 32 32 32 32 32 32 32 32 32 32 209 187 32 32 32 32 32 32 32 32 32 32 32 32 32 32 254 187 96 184 32 32 32 32 32 32 32 32 32 32 32 46 106 169 209 32 32 32 32 32 32 32 32 32 32 32 32 32 169 168 58 32 183 32 32 32 32 32 32 32 32 32 32 32 81 255 34 32 32 183 32 32 32 32 32 32 32 32 32 32 202 206 50 96 32 32 32 32 32 32 32 32 32 32 32 32 254 103 81 254 187 96 96 32 32 183 59 46 32 32 32 32 174 174 202 112 95 209 81 95 81 253 169 169 96 184 32 96 202 202 112 202 202 81 202 255 209 175 96 96 96 46 183 96 202 216 202 202 202 202 202 219 58 58 183 32 32 32 32 32 202 202 209 202 202 202 209 96 96 96 96 32 32 32 32 32 202 202 209 202 202 202 171 187 96 96 32 32 32 32 32 46 202 202 202 202 202 202 254 171 58 58 187 187 58 187 187 187 202 202 202 202 202 202 254 81 187 187 187 171 187 187 81 209 202 202 202 202 202 202 202 254 255 169 209 81 169 169 209 81 202 202 202 202 202 202 202 202 202 81 254 209 169 209 81 209 202 202 202 202 202 202 202 202 202 202 202 254 81 255 209 209 202 202 216 202 202 202 202 202 202 202 202 202 202 254 32 32 198 202 202 202 202 202 209 202 202 202 202 202 202 202 254 32 198 202 202 202 202 202 209 202 202 202 202 202 202 202 209 112 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 254 202 202 202 202 202 202 202 209 202 202 202 209 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 Columns 17 through 32 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 32 32 32 32 32 32 32 32 32 32 32 32 32 96 171 32 32 32 32 32 96 32 32 32 32 32 32 32 32 96 183 32 32 32 32 32 32 32 32 32 32 32 32 32 32 187 32 32 46 96 95 95 171 32 32 32 32 32 32 32 58 42 32 32 180 175 175 206 168 168 168 187 58 46 32 32 33 96 32 32 32 32 32 32 32 32 184 168 180 81 95 46 32 32 32 32 32 32 32 32 32 32 206 169 216 202 202 220 58 32 32 32 96 32 32 32 32 32 32 178 171 187 46 230 178 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 184 32 183 32 32 32 32 32 32 32 32 32 32 32 32 161 209 32 32 187 32 32 32 32 32 32 32 32 32 32 184 81 209 32 32 183 178 32 32 32 32 32 32 32 184 171 113 202 81 32 32 32 180 32 32 32 32 32 32 96 81 81 198 202 81 96 96 168 183 59 46 32 32 184 171 81 216 202 202 209 202 58 46 183 96 96 96 187 187 96 169 209 209 202 209 209 209 32 183 187 171 58 59 187 171 58 187 187 209 209 209 209 209 32 58 187 187 187 187 81 81 169 169 81 81 81 81 209 209 187 105 187 187 187 238 209 169 169 81 81 81 169 209 209 81 187 187 250 249 169 169 209 81 209 209 209 202 202 81 209 209 209 169 209 81 81 81 81 209 202 202 202 209 202 216 209 209 81 81 209 209 202 255 209 202 202 202 202 202 202 202 209 202 202 209 209 209 216 202 202 216 202 209 209 202 202 202 202 202 202 202 209 209 202 202 209 209 202 202 209 209 202 202 202 202 32 32 32 32 32 180 168 209 209 202 202 202 202 202 202 209 32 32 32 32 32 32 32 32 168 206 209 202 202 202 202 202 32 184 168 187 44 184 32 32 32 32 168 206 169 209 209 209 32 178 187 96 96 178 209 169 81 81 81 191 81 95 106 81 32 32 183 96 58 187 187 171 81 206 209 209 209 209 209 209 32 32 32 32 32 96 94 209 169 169 81 81 202 209 209 209 Columns 33 through 48 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 32 32 32 32 32 32 32 187 57 170 168 32 32 32 32 32 32 32 32 32 32 171 168 32 32 32 32 32 32 32 32 32 32 32 32 32 96 32 32 32 32 32 32 32 32 32 32 32 32 32 32 96 32 32 32 32 32 32 32 32 32 32 32 32 32 32 58 180 32 32 32 32 32 32 32 32 32 32 32 32 32 179 178 32 32 32 32 32 32 32 32 32 46 46 184 187 32 209 32 32 32 32 32 32 32 32 32 32 95 184 46 46 105 175 32 32 184 161 187 169 187 187 187 171 96 96 58 183 206 32 32 81 169 209 209 81 169 178 32 32 32 46 183 183 32 32 171 209 209 209 209 220 175 96 32 32 32 32 32 44 187 81 187 220 238 183 183 96 32 32 32 172 171 187 187 179 169 169 187 96 32 32 32 32 32 32 32 32 32 32 32 32 206 96 183 32 32 32 32 32 32 32 32 32 32 32 32 32 254 95 32 32 32 32 32 32 32 32 32 32 32 32 32 32 202 202 112 191 184 32 32 32 32 32 32 32 32 32 32 32 202 202 202 209 202 81 81 95 32 32 32 32 32 32 32 32 209 202 209 209 169 209 209 209 174 191 32 32 32 32 32 184 202 209 209 254 169 169 58 96 32 179 169 187 32 171 81 187 202 209 209 254 202 169 187 32 32 32 32 96 96 32 32 32 202 81 209 202 254 254 81 96 32 32 32 32 32 32 32 32 202 202 202 202 202 202 209 112 95 32 32 32 32 32 32 32 202 202 202 202 202 209 209 175 216 209 254 191 184 32 32 32 202 202 202 202 202 202 254 81 32 32 175 219 209 81 191 184 202 202 202 202 202 202 209 209 171 59 184 32 32 175 219 209 202 202 202 202 202 209 209 209 206 169 187 187 187 46 32 32 216 209 209 209 209 209 209 169 81 81 81 187 59 249 51 187 209 209 209 169 81 81 209 81 81 174 103 103 81 174 81 81 209 202 216 202 202 202 202 209 202 202 202 202 202 202 202 209 202 202 209 209 202 202 202 202 202 202 209 202 202 202 202 209 Columns 49 through 64 42 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 32 32 32 32 32 32 32 32 32 175 34 178 178 81 81 95 32 32 32 32 32 32 32 32 32 32 32 32 32 32 175 219 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 95 184 95 32 32 32 32 32 32 32 32 32 32 32 32 184 209 81 209 255 254 32 32 32 32 32 183 32 32 32 180 55 209 202 203 209 209 32 32 32 32 32 32 32 180 32 32 95 81 209 195 187 32 32 32 32 32 32 184 59 175 32 46 253 194 209 202 32 32 32 32 32 32 32 94 176 175 175 175 175 174 174 191 191 184 32 96 32 32 46 187 171 249 113 191 191 187 94 44 175 168 187 96 96 168 81 32 32 32 32 32 44 77 202 81 254 ...