diff --git a/codeforces/1017/f.cc b/codeforces/1017/f.cc index 2f0f1ed..cd8cfc7 100644 --- a/codeforces/1017/f.cc +++ b/codeforces/1017/f.cc @@ -19,27 +19,31 @@ void solve() { i32 n, m, k; cin >> n >> m >> k; - if (n > m) { - swap(n, m); - } - - // 3x4 -> [1, 2 ,1, 2] - // [2, 1, 2, 1] - // [1, 2, 1, 2] - - // if even # cols/rows -> ez (i.e. either even, swap) - // REDUCE: odd # cols & rows - // [1, 2, 3] - // [2, 3, 1] - // [3, 2, 1] - - - i32 cur = -1; - if (n & 1 && m & 1) { - cur = (cur + 1) % m; - for (i32 i = 0; i < n; ++i) { - for () + vector> grid(n, vector(m)); + int r = 0, c = 0; + i32 cur = 1; + for (i64 i = 0; i < n * m; ++i) { + grid[r][c] = cur; + if (++cur == k + 1) { + cur = 1; } + if (++c == m) { + c = 0; + ++r; + } + } + if (m % k == 0) { + for (int r = 0; r < n; r += 2) { + for (int c = 0; c < m; ++c) + if (++grid[r][c] == k + 1) { + grid[r][c] = 1; + } + } + } + for (auto& row : grid) { + for (auto& cell : row) + cout << cell << ' '; + cout << endl; } } diff --git a/codeforces/1017/f.in b/codeforces/1017/f.in index 766e406..02e9b8b 100644 --- a/codeforces/1017/f.in +++ b/codeforces/1017/f.in @@ -1,4 +1,5 @@ -3 +4 2 2 2 3 4 6 5 5 25 +4 6 3 diff --git a/codeforces/1017/f.out b/codeforces/1017/f.out index 445b8c6..becc549 100644 --- a/codeforces/1017/f.out +++ b/codeforces/1017/f.out @@ -1,12 +1,16 @@ -1 2 2 1 +1 2 1 2 3 4 -2 3 4 5 +5 6 1 2 3 4 5 6 1 2 3 4 5 -2 3 4 5 6 -3 4 5 6 7 -4 5 6 7 8 -5 6 7 8 9 +6 7 8 9 10 +11 12 13 14 15 +16 17 18 19 20 +21 22 23 24 25 +2 3 1 2 3 1 +1 2 3 1 2 3 +2 3 1 2 3 1 +1 2 3 1 2 3 -[code]: 0 +[code]: 0 \ No newline at end of file