Submission details
Task:Ruudukko
Sender:jhuun
Submission time:2025-09-27 17:47:15 +0300
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.00 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d", &t);
      |     ~~~~~^~~~~~~~~~
input/code.cpp:12:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         scanf("%d%d", &n, &m);
      |         ~~~~~^~~~~~~~~~~~~~~~

Code

#include <stdio.h>

#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))

int RES[101];

int main(void) {
    int t, n, m;
    scanf("%d", &t);
    for (int i = 0; i < t; ++i) {
        scanf("%d%d", &n, &m);
        if (n * m == 1) {
            printf("1\n");
        } else if (n * m <= 3 || (n == 2 && m == 2)) {
            printf("NO\n");
        } else {
            for (int x = 2, s = 0; s <= n + m - 2; ++s) {
                for (int j = 0; j < MAX(n, m); ++j) {
                    for (int k = 0; k < MIN(n, m); ++k) {
                        if (j + k == s) {
                            RES[n == MAX(n, m) ? j * m + k : k * m + j] = x;
                            x = (x + 2 > n * m ? 1 : x + 2);
                        }
                    }
                }
            }
            printf("YES\n");
            for (int n_ = 0; n_ < n; ++n_) {
                for (int m_ = 0; m_ < m; ++m_) {
                    printf("%d ", RES[n_ * m + m_]);
                }
                printf("\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
1
NO
NO
NO
NO
...