/* -*- coding: utf-8 -*- * * 3765.cc: No.3765 321-avoiding Grid - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 500; const int MAX_NN = MAX_N * MAX_N; /* typedef */ /* global variables */ char s[MAX_NN + 4]; /* subroutines */ /* main */ int main() { int n, a, b, c; scanf("%d%d%d%d", &n, &a, &b, &c); int nn = n * n; if (a >= n) { fill(s, s + c, '3'); fill(s + c, s + c + a, '1'); fill(s + c + a, s + nn, '2'); } else if (c >= n) { fill(s, s + a, '1'); fill(s + a, s + a + c, '3'); fill(s + a + c, s + nn, '2'); } else { // a < n && c < n if (a <= c) { fill(s, s + a, '1'); fill(s + a, s + c, '3'); fill(s + n, s + n + a, '3'); } else { fill(s, s + c, '3'); fill(s + c, s + a, '1'); fill(s + n, s + n + c, '1'); } for (int u = 0; u < nn; u++) if (! s[u]) s[u] = '2'; } for (int i = 0; i < nn; i++) { putchar(s[i]); if ((i + 1) % n == 0) putchar('\n'); } return 0; }