QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#795038 | #9799. Magical Palette | ucup-team5234# | WA | 50ms | 18988kb | C++23 | 3.2kb | 2024-11-30 17:34:53 | 2024-11-30 17:34:54 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define all(v) (v).begin(),(v).end()
#define pb(a) push_back(a)
#define rep(i, n) for(int i=0;i<n;i++)
#define foa(e, v) for(auto& e : v)
using ll = long long;
const ll MOD7 = 1000000007, MOD998 = 998244353, INF = (1LL << 60);
#define dout(a) cout<<fixed<<setprecision(10)<<a<<endl;
bool judge(vector<ll> a, vector<ll> b) {
ll n = a.size();
ll m = b.size();
vector<bool> ok(n * m, 0);
foa(e, a) foa(e2, b) {
if(ok[(e * e2) % (n * m)]) {
return false;
}
ok[(e * e2) % (n * m)] = 1;
}
return true;
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
int t;
cin >> t;
rep(_, t) {
ll n, m;
cin >> n >> m;
vector<ll> a(n), b(m);
rep(i, n) {
a[i] = m * i + 1;
}
rep(i, m) {
b[i] = n * i + 1;
}
if(judge(a, b)) {
cout << "Yes" << endl;
foa(e, a) cout << e << " " ;
cout << endl;
foa(e, b) cout << e << " " ;
cout << endl;
} else {
cout << "No" << endl;
}
}
// int t;
// cin >> t;
// int N = 1000001;
// vector<int> pri(N, -1);
// for(int i = 2; i < N; i ++) {
// if(pri[i] != -1) continue;
// for(int j = i; j < N; j += i) {
// if(pri[j] == -1) pri[j] = i;
// }
// }
// rep(_, t) {
// ll n, m;
// cin >> n >> m;
// cout << "Yes" << endl;
// // vector<bool> used(n * m + 1, 0);
// // vector<ll> v;
// // for(int i = 1; i <= n * m; i ++) {
// // if(pri[i] == i and __gcd(i, n) == 1 and __gcd(i, m) == 1) v.pb(i);
// // }
// vector<ll> ps;
// for(ll i = 2; i <= n * m; i ++) {
// if(__gcd(i, n) == 1 and __gcd(i, m) == 1 and pri[i] == i) ps.pb(i);
// }
// ll sz = ps.size();
// vector<ll> counter(n * m + 1, 0);
// vector<ll> a, b;
// int id = 0;
// bool ng = 0;
// for(ll i = 1; i <= n; i ++) {
// if(i == 1) {
// a.pb(1);
// continue;
// }
// ll num = i;
// ll g = __gcd(i, n);
// while(__gcd(num, m) != 1LL and num ) {
// num += n;
// assert(n * m >= num);
// }
// used[num] = 1;
// a.pb(num);
// }
// for(ll i = 1; i <= m; i ++) {
// if(i == 1) {
// b.pb(1);
// continue;
// }
// ll num = i;
// while(used[num] or __gcd(num, n) != 1LL) {
// num += m;
// assert(n * m >= num);
// }
// used[num] = 1;
// b.pb(num);
// }
// if(!ng and judge(a, b)) {
// cout << "Yes" << endl;
// foa(e, a) cout << e << " " ;
// cout << endl;
// foa(e, b) cout << e << " " ;
// } else {
// cout << "No" << endl;
// }
// }
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3660kb
input:
2 2 3 2 2
output:
Yes 1 4 1 3 5 No
result:
ok 2 cases (2 test cases)
Test #2:
score: -100
Wrong Answer
time: 50ms
memory: 18988kb
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 1...
result:
wrong answer Integer parameter [name=b[1000000]] equals to 1000000, violates the range [0, 999999] (test case 1)