QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#779962 | #9799. Magical Palette | racel | TL | 0ms | 3556kb | C++20 | 1.6kb | 2024-11-24 23:09:06 | 2024-11-24 23:09:08 |
Judging History
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;
}
詳細信息
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