답안 #736988

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
736988 2023-05-06T12:14:32 Z mjhmjh1104 Gardening (RMI21_gardening) C++17
0 / 100
31 ms 588 KB
#include <cstdio>
#include <vector>
using namespace std;

int t, n, m, s;
vector<vector<int>> v;

void print() {
    puts("YES");
    for (auto &i: v) {
        for (auto &j: i) printf("%d ", j + 1);
        puts("");
    }
}

int main() {
    for (scanf("%d", &t); t--; ) {
        scanf("%d%d%d", &n, &m, &s);
        v.clear();
        v.resize(n);
        for (int i = 0; i < n; i++) v[i].resize(m);
        if (n % 2 || m % 2) {
            puts("NO");
            continue;
        }
        if (n == 2) {
            if (s != m / 2) {
                puts("NO");
                continue;
            }
            for (int i = 0; i < n / 2; i++) v[0][i * 2] = v[0][i * 2 + 1] = v[1][i * 2] = v[1][i * 2 + 1] = i;
            print();
            continue;
        }
        if (n == 4) {
            int a = m - s;
            int b = s - m / 2;
            if (a < 0 || b < 0 || a == 1) {
                puts("NO");
                continue;
            }
            if (a) {
                v[0][0] = v[1][0] = v[2][0] = v[3][0] = 0;
                v[0][2 * a - 1] = v[1][2 * a - 1] = v[2][2 * a - 1] = v[3][2 * a - 1] = 0;
                for (int i = 0; i < a - 1; i++) {
                    v[0][i * 2 + 1] = v[0][i * 2 + 2] = v[3][i * 2 + 1] = v[3][i * 2 + 2] = 0;
                    v[1][i * 2 + 1] = v[1][i * 2 + 2] = v[2][i * 2 + 1] = v[2][i * 2 + 2] = i + 1;
                }
            }
            for (int i = 0; i < b; i++) {
                v[0][a * 2 + i * 2] = v[0][a * 2 + i * 2 + 1] = v[1][a * 2 + i * 2] = v[1][a * 2 + i * 2 + 1] = a + i * 2;
                v[2][a * 2 + i * 2] = v[2][a * 2 + i * 2 + 1] = v[3][a * 2 + i * 2] = v[3][a * 2 + i * 2 + 1] = a + i * 2 + 1;
            }
            print();
            continue;
        }
        puts("NO");
    }
}

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:17:15: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     for (scanf("%d", &t); t--; ) {
      |          ~~~~~^~~~~~~~~~
Main.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         scanf("%d%d%d", &n, &m, &s);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Failed 31 ms 588 KB Output does not contain all values between 1 and k
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Failed 31 ms 588 KB Output does not contain all values between 1 and k
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Failed 31 ms 588 KB Output does not contain all values between 1 and k
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Failed 1 ms 212 KB Incorrect output
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Failed 1 ms 212 KB Incorrect output
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Failed 31 ms 588 KB Output does not contain all values between 1 and k
2 Halted 0 ms 0 KB -