Submission details
Task:Ruudukko
Sender:ollpu
Submission time:2025-09-26 20:27:06 +0300
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.01 sdetails

Code

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T;
    cin >> T;
    for (int Ti = 0; Ti < T; ++Ti) {
        int n, m;
        cin >> n >> m;
        if (n * m == 2 || n * m == 3 || (n == 2 && m == 2)) {
            cout << "NO\n";
            continue;
        }
        int ans[n][m];
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) ans[i][j] = i*m + j + 1;
        }
        while (true) {
            bool f = 1;
            for (int i = 0; i < n; ++i) {
                for (int j = 0; j+1 < m; ++j) if (abs(ans[i][j] - ans[i][j+1]) == 1) f = 0;
            }
            for (int i = 0; i+1 < n; ++i) {
                for (int j = 0; j < m; ++j) if (abs(ans[i][j] - ans[i+1][j]) == 1) f = 0;
            }
            if (f) break;
            random_shuffle(&ans[0][0], &ans[0][0] + n*m);
        }
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                cout << ans[i][j] << " ";
            }
            cout << "\n";
        }
    }
}

Test details

Test 1

Verdict:

input
100
1 1
1 2
2 1
1 3
...

correct output
YES
1
NO
NO
NO
...

user output

NO
NO
NO
NO
...