QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#780584#9799. Magical PalettecomeintocalmWA 53ms7080kbC++202.1kb2024-11-25 11:41:582024-11-25 11:42:02

Judging History

你现在查看的是最新测评结果

  • [2024-11-25 11:42:02]
  • 评测
  • 测评结果:WA
  • 用时:53ms
  • 内存:7080kb
  • [2024-11-25 11:41:58]
  • 提交

answer

#include <bits/stdc++.h>

const int N = 1e6 + 5;

// int a[N], b[N];
// int n, m;
// int mp[105][105];
// 
// void get_a_b_mp() {
//     for (int i = 1; i <= n; ++i) {
//         a[i] = i;
//     }
//     for (int i = 1; i <= m; ++i) {
//         b[i] = (i - 1) * n + 1;
//     }
//     for (int i = 1; i <= n; ++i) {
//         for (int j = 1; j <= m; ++j) {
//             mp[i][j] = a[i] * b[j] % (n * m);
//         }
//     }
// }
// 
// int chk() {
//     std::set<int> st;
//     for (int i = 1; i <= n; ++i) {
//         for (int j = 1; j <= m; ++j) {
//             st.insert(mp[i][j]);
//         }
//     }
//     return st.size() == n * m;
// }

int main() {
    // freopen("b.out", "w", stdout);
    // printf("   ");
    // for (n = 1; n <= 30; ++n) {
    //     printf("%2d ", n);
    // }
    // puts("");
    // for (n = 1; n <= 30; ++n) {
    //     printf("%2d ", n);
    //     for (m = 1; m <= 30; ++m) {
    //         get_a_b_mp();
    //         printf("%2d ", chk());
    //     }
    //     puts("");
    // }
    int T;
    scanf("%d", &T);
    while (T--) {
        int n, m;
        bool rev = false;
        scanf("%d%d", &n, &m);
        if (n > m) {
            std::swap(n, m);
            rev = true;
        }
        std::vector<int> a(n), b(m);
        bool ans = true;
        for (int i = 1; i <= n; ++i) {
            if (std::__gcd(i, m) != 1) {
                ans = false;
                break;
            }
        }
        if (!ans) {
            puts("No");
            continue;
        }
        for (int i = 1; i <= n; ++i) {
            a[i - 1] = i;
        }
        for (int i = 1; i <= m; ++i) {
            b[i - 1] = (i - 1) * n + 1;
        }
        if (rev) {
            std::swap(n, m);
            std::swap(a, b);
        }
        puts("Yes");
        for (int i = 0; i < n; ++i) {
            printf("%d%c", a[i], " \n"[i == n - 1]);
        }
        for (int i = 0; i < m; ++i) {
            printf("%d%c", b[i], " \n"[i == m - 1]);
        }
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 4088kb

input:

2
2 3
2 2

output:

Yes
1 2
1 3 5
No

result:

ok 2 cases (2 test cases)

Test #2:

score: -100
Wrong Answer
time: 53ms
memory: 7080kb

input:

1
1 1000000

output:

Yes
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...

result:

wrong answer Integer parameter [name=b[1000000]] equals to 1000000, violates the range [0, 999999] (test case 1)