QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#779962#9799. Magical PaletteracelTL 0ms3556kbC++201.6kb2024-11-24 23:09:062024-11-24 23:09:08

Judging History

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

  • [2024-11-24 23:09:08]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:3556kb
  • [2024-11-24 23:09:06]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
using ll = long long int;

bool validate() {
    vector<int> cc = {1,
            3,
            5,
            7,
            9};
    vector<int> rr = {
            11,
            3,
            5,
            7
    };
    int n = cc.size();
    int m = rr.size();
    set<int> st;
    for(int i : cc) {
        for(int j : rr) {
            st.insert((i * j) % (n * m));
        }
    }

    if(st.size() == n * m) {
        return true;
    }
    return false;
}

void solve() {
    int n, m;
    cin >> n >> m;
    if(n == m) {
        cout << "No\n";
        return;
    }
    vector<int> c(n * m), r(n * m);
    for(int i = 0; i < n * m; i++) c[i] = i;
    for(int i = 0; i < n * m; i++) r[i] = i;
    int cnt = 0;

//    cout << validate() << endl;

    auto rng = std::default_random_engine {};
    while(true) {
        shuffle(c.begin(), c.end(), rng);
        shuffle(r.begin(), r.end(), rng);
        vector<int> cc(c.begin(), c.begin() + n);
        vector<int> rr(r.begin(), r.begin() + m);

        set<int> st;
        for(int i : cc) {
            for(int j : rr) {
                st.insert((i * j) % (n * m));
            }
        }

        if(st.size() == n * m) {
            cout << "Yes\n";
            for(int i : cc) cout << i << ' ';
            cout << endl;
            for(int i : rr) cout << i << ' ';
            cout << endl;
            return;
        }
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    signed tc = 1;
    cin >> tc;
    while(tc--) solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2
2 3
2 2

output:

Yes
5 2 
5 1 3 
No

result:

ok 2 cases (2 test cases)

Test #2:

score: -100
Time Limit Exceeded

input:

1
1 1000000

output:


result: