#import<string> #import<vector> #define A(x) abs(x-r) typedef std::string S; typedef std::vector<S>V; 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"); 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