#import<vector> #import<string> #define A(x) abs(x-r) using S=std::string;using V=std::vector<S>;int R(int n){return n?(n%2)?R(n-1)+1:2*R(n-1)+2:0;}V f(S w){int l=w.size(),r=R(l-1),s=r*2+1,i,j,k;V x(s);for(i=0;i<s;++i){x[i]=S(s,46);for(j=0;j<s;++j)for(k=0;k<l;++k){if(A(i)<=R(k)&A(j)<=R(k)&k%2?A(i)==R(k)|A(j)==R(k):(A(i)+A(j)==R(k)))x[i][j]=w[k];}}return x;} #include<iostream> void printSquare(std::string word){ auto result = f(word); for(auto& s:result) std::cout << s << std::endl; std::cout << std::endl << std::endl; } int main() { printSquare("a"); printSquare("ab"); printSquare("cat"); printSquare("cats"); printSquare("meow"); printSquare("meows"); printSquare("codegolf"); printSquare("VoteForC++"); return 0; }
Standard input is empty
a bbb bab bbb ....t.... ...t.t... ..t...t.. .t.aaa.t. t..aca..t .t.aaa.t. ..t...t.. ...t.t... ....t.... sssssssssss s....t....s s...t.t...s s..t...t..s s.t.aaa.t.s st..aca..ts s.t.aaa.t.s s..t...t..s s...t.t...s s....t....s sssssssssss wwwwwwwwwww w....o....w w...o.o...w w..o...o..w w.o.eee.o.w wo..eme..ow w.o.eee.o.w w..o...o..w w...o.o...w w....o....w wwwwwwwwwww ............s............ ...........s.s........... ..........s...s.......... .........s.....s......... ........s.......s........ .......s.........s....... ......s...........s...... .....s.wwwwwwwwwww.s..... ....s..w....o....w..s.... ...s...w...o.o...w...s... ..s....w..o...o..w....s.. .s.....w.o.eee.o.w.....s. s......wo..eme..ow......s .s.....w.o.eee.o.w.....s. ..s....w..o...o..w....s.. ...s...w...o.o...w...s... ....s..w....o....w..s.... .....s.wwwwwwwwwww.s..... ......s...........s...... .......s.........s....... ........s.......s........ .........s.....s......... ..........s...s.......... ...........s.s........... ............s............ fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f............................l............................f f...........................l.l...........................f f..........................l...l..........................f f.........................l.....l.........................f f........................l.......l........................f f.......................l.........l.......................f f......................l...........l......................f f.....................l.............l.....................f f....................l...............l....................f f...................l.................l...................f f..................l...................l..................f f.................l.....................l.................f f................l.......................l................f f...............l.........................l...............f f..............l...........................l..............f f.............l.ooooooooooooooooooooooooooo.l.............f f............l..o............g............o..l............f f...........l...o...........g.g...........o...l...........f f..........l....o..........g...g..........o....l..........f f.........l.....o.........g.....g.........o.....l.........f f........l......o........g.......g........o......l........f f.......l.......o.......g.........g.......o.......l.......f f......l........o......g...........g......o........l......f f.....l.........o.....g.eeeeeeeeeee.g.....o.........l.....f f....l..........o....g..e....d....e..g....o..........l....f f...l...........o...g...e...d.d...e...g...o...........l...f f..l............o..g....e..d...d..e....g..o............l..f f.l.............o.g.....e.d.ooo.d.e.....g.o.............l.f fl..............og......ed..oco..de......go..............lf f.l.............o.g.....e.d.ooo.d.e.....g.o.............l.f f..l............o..g....e..d...d..e....g..o............l..f f...l...........o...g...e...d.d...e...g...o...........l...f f....l..........o....g..e....d....e..g....o..........l....f f.....l.........o.....g.eeeeeeeeeee.g.....o.........l.....f f......l........o......g...........g......o........l......f f.......l.......o.......g.........g.......o.......l.......f f........l......o........g.......g........o......l........f f.........l.....o.........g.....g.........o.....l.........f f..........l....o..........g...g..........o....l..........f f...........l...o...........g.g...........o...l...........f f............l..o............g............o..l............f f.............l.ooooooooooooooooooooooooooo.l.............f f..............l...........................l..............f f...............l.........................l...............f f................l.......................l................f f.................l.....................l.................f f..................l...................l..................f f...................l.................l...................f f....................l...............l....................f f.....................l.............l.....................f f......................l...........l......................f f.......................l.........l.......................f f........................l.......l........................f f.........................l.....l.........................f f..........................l...l..........................f f...........................l.l...........................f f............................l............................f fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +............................................................+............................................................+ +...........................................................+.+...........................................................+ +..........................................................+...+..........................................................+ +.........................................................+.....+.........................................................+ +........................................................+.......+........................................................+ +.......................................................+.........+.......................................................+ +......................................................+...........+......................................................+ +.....................................................+.............+.....................................................+ +....................................................+...............+....................................................+ +...................................................+.................+...................................................+ +..................................................+...................+..................................................+ +.................................................+.....................+.................................................+ +................................................+.......................+................................................+ +...............................................+.........................+...............................................+ +..............................................+...........................+..............................................+ +.............................................+.............................+.............................................+ +............................................+...............................+............................................+ +...........................................+.................................+...........................................+ +..........................................+...................................+..........................................+ +.........................................+.....................................+.........................................+ +........................................+.......................................+........................................+ +.......................................+.........................................+.......................................+ +......................................+...........................................+......................................+ +.....................................+.............................................+.....................................+ +....................................+...............................................+....................................+ +...................................+.................................................+...................................+ +..................................+...................................................+..................................+ +.................................+.....................................................+.................................+ +................................+.......................................................+................................+ +...............................+.........................................................+...............................+ +..............................+...........................................................+..............................+ +.............................+.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.+.............................+ +............................+..C............................r............................C..+............................+ +...........................+...C...........................r.r...........................C...+...........................+ +..........................+....C..........................r...r..........................C....+..........................+ +.........................+.....C.........................r.....r.........................C.....+.........................+ +........................+......C........................r.......r........................C......+........................+ +.......................+.......C.......................r.........r.......................C.......+.......................+ +......................+........C......................r...........r......................C........+......................+ +.....................+.........C.....................r.............r.....................C.........+.....................+ +....................+..........C....................r...............r....................C..........+....................+ +...................+...........C...................r.................r...................C...........+...................+ +..................+............C..................r...................r..................C............+..................+ +.................+.............C.................r.....................r.................C.............+.................+ +................+..............C................r.......................r................C..............+................+ +...............+...............C...............r.........................r...............C...............+...............+ +..............+................C..............r...........................r..............C................+..............+ +.............+.................C.............r.ooooooooooooooooooooooooooo.r.............C.................+.............+ +............+..................C............r..o............F............o..r............C..................+............+ +...........+...................C...........r...o...........F.F...........o...r...........C...................+...........+ +..........+....................C..........r....o..........F...F..........o....r..........C....................+..........+ +.........+.....................C.........r.....o.........F.....F.........o.....r.........C.....................+.........+ +........+......................C........r......o........F.......F........o......r........C......................+........+ +.......+.......................C.......r.......o.......F.........F.......o.......r.......C.......................+.......+ +......+........................C......r........o......F...........F......o........r......C........................+......+ +.....+.........................C.....r.........o.....F.eeeeeeeeeee.F.....o.........r.....C.........................+.....+ +....+..........................C....r..........o....F..e....t....e..F....o..........r....C..........................+....+ +...+...........................C...r...........o...F...e...t.t...e...F...o...........r...C...........................+...+ +..+............................C..r............o..F....e..t...t..e....F..o............r..C............................+..+ +.+.............................C.r.............o.F.....e.t.ooo.t.e.....F.o.............r.C.............................+.+ ++..............................Cr..............oF......et..oVo..te......Fo..............rC..............................++ +.+.............................C.r.............o.F.....e.t.ooo.t.e.....F.o.............r.C.............................+.+ +..+............................C..r............o..F....e..t...t..e....F..o............r..C............................+..+ +...+...........................C...r...........o...F...e...t.t...e...F...o...........r...C...........................+...+ +....+..........................C....r..........o....F..e....t....e..F....o..........r....C..........................+....+ +.....+.........................C.....r.........o.....F.eeeeeeeeeee.F.....o.........r.....C.........................+.....+ +......+........................C......r........o......F...........F......o........r......C........................+......+ +.......+.......................C.......r.......o.......F.........F.......o.......r.......C.......................+.......+ +........+......................C........r......o........F.......F........o......r........C......................+........+ +.........+.....................C.........r.....o.........F.....F.........o.....r.........C.....................+.........+ +..........+....................C..........r....o..........F...F..........o....r..........C....................+..........+ +...........+...................C...........r...o...........F.F...........o...r...........C...................+...........+ +............+..................C............r..o............F............o..r............C..................+............+ +.............+.................C.............r.ooooooooooooooooooooooooooo.r.............C.................+.............+ +..............+................C..............r...........................r..............C................+..............+ +...............+...............C...............r.........................r...............C...............+...............+ +................+..............C................r.......................r................C..............+................+ +.................+.............C.................r.....................r.................C.............+.................+ +..................+............C..................r...................r..................C............+..................+ +...................+...........C...................r.................r...................C...........+...................+ +....................+..........C....................r...............r....................C..........+....................+ +.....................+.........C.....................r.............r.....................C.........+.....................+ +......................+........C......................r...........r......................C........+......................+ +.......................+.......C.......................r.........r.......................C.......+.......................+ +........................+......C........................r.......r........................C......+........................+ +.........................+.....C.........................r.....r.........................C.....+.........................+ +..........................+....C..........................r...r..........................C....+..........................+ +...........................+...C...........................r.r...........................C...+...........................+ +............................+..C............................r............................C..+............................+ +.............................+.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.+.............................+ +..............................+...........................................................+..............................+ +...............................+.........................................................+...............................+ +................................+.......................................................+................................+ +.................................+.....................................................+.................................+ +..................................+...................................................+..................................+ +...................................+.................................................+...................................+ +....................................+...............................................+....................................+ +.....................................+.............................................+.....................................+ +......................................+...........................................+......................................+ +.......................................+.........................................+.......................................+ +........................................+.......................................+........................................+ +.........................................+.....................................+.........................................+ +..........................................+...................................+..........................................+ +...........................................+.................................+...........................................+ +............................................+...............................+............................................+ +.............................................+.............................+.............................................+ +..............................................+...........................+..............................................+ +...............................................+.........................+...............................................+ +................................................+.......................+................................................+ +.................................................+.....................+.................................................+ +..................................................+...................+..................................................+ +...................................................+.................+...................................................+ +....................................................+...............+....................................................+ +.....................................................+.............+.....................................................+ +......................................................+...........+......................................................+ +.......................................................+.........+.......................................................+ +........................................................+.......+........................................................+ +.........................................................+.....+.........................................................+ +..........................................................+...+..........................................................+ +...........................................................+.+...........................................................+ +............................................................+............................................................+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++