/* -*- coding: utf-8 -*- * * 3731.cc: No.3731 Kaleidoscope - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_L = 1000; const int MAX_N = 1 << 10; /* typedef */ /* global variables */ char s[MAX_L + 4], ss[MAX_N][MAX_N + 4]; /* subroutines */ /* main */ int main() { scanf("%s", s); int l = strlen(s); int n = (l + 1) / 2 * 2 + 3; for (int i = 0; i < n; i++) fill(ss[i], ss[i] + n, '#'); ss[0][0] = '.'; for (int i = 0; i < n; i++) ss[i][n - 1] = ss[n - 1][i] = '.'; int y = 0, x = 0, dy = 0, dx = 1; for (int i = 0; i < l; i++) { y += dy, x += dx; ss[y][x] = '.'; y += dy, x += dx; ss[y][x] = '.'; if (s[i] == 'o') { int vy = y, vx = x; while (vy < n - 1 && vx < n - 1) { vy += dy, vx += dx; ss[vy][vx] = '.'; } } swap(dy, dx); } printf("%d\n", n); for (int i = 0; i < n; i++) puts(ss[i]); return 0; }