Submission details
Task:Ruudukko
Sender:jhuun
Submission time:2025-09-27 18:44:04 +0300
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.00 sdetails

Code

#include <bits/stdc++.h>

int main() {
    int t, n, m;
    std::cin >> t;
    for (int i = 0; i < t; ++i) {
        std::cin >> n >> m;
        std::vector<int> res(n * m + 1);
        if (n * m == 1) {
            std::cout << "1\n";
        } else if (n * m <= 3 || (n == 2 && m == 2)) {
            std::cout << "NO\n";
        } else {
            for (int x = 2, s = 0; s <= n + m - 2; ++s) {
                for (int j = 0; j < std::max(n, m); ++j) {
                    for (int k = 0; k < std::min(n, m); ++k) {
                        if (j + k == s) {
                            res[n == std::max(n, m) ? j * m + k : k * m + j] = x;
                            x = (x + 2 > n * m ? 1 : x + 2);
                        }
                    }
                }
            }
            std::cout << "YES\n";
            for (int n_ = 0; n_ < n; ++n_) {
                for (int m_ = 0; m_ < m; ++m_) {
                    std::cout << res[n_ * m + m_] << " \n"[m_ == m - 1];
                }
            }
        }
    }
}

Test details

Test 1

Verdict:

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

correct output
YES
1
NO
NO
NO
...

user output
1
NO
NO
NO
NO
...