Task: | Chair Game |
Sender: | John Hedin |
Submission time: | 2024-03-21 00:42:55 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
#4 | WRONG ANSWER | 0 |
#5 | WRONG ANSWER | 0 |
#6 | WRONG ANSWER | 0 |
#7 | WRONG ANSWER | 0 |
#8 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1, 7, 8 | details |
#2 | WRONG ANSWER | 0.01 s | 1, 7, 8 | details |
#3 | WRONG ANSWER | 0.01 s | 1, 7, 8 | details |
#4 | WRONG ANSWER | 0.01 s | 1, 7, 8 | details |
#5 | WRONG ANSWER | 0.01 s | 1, 7, 8 | details |
#6 | WRONG ANSWER | 0.01 s | 7, 8 | details |
#7 | WRONG ANSWER | 0.01 s | 7, 8 | details |
#8 | WRONG ANSWER | 0.03 s | 2, 8 | details |
#9 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6, 8 | details |
#10 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6, 8 | details |
#11 | ACCEPTED | 0.02 s | 3, 4, 5, 6, 8 | details |
#12 | ACCEPTED | 0.06 s | 3, 4, 5, 6, 8 | details |
#13 | WRONG ANSWER | 0.01 s | 4, 5, 6, 7, 8 | details |
#14 | WRONG ANSWER | 0.02 s | 4, 5, 6, 8 | details |
#15 | ACCEPTED | 0.02 s | 4, 5, 6, 8 | details |
#16 | ACCEPTED | 0.05 s | 4, 5, 6, 8 | details |
#17 | WRONG ANSWER | 0.01 s | 5, 6, 7, 8 | details |
#18 | WRONG ANSWER | 0.01 s | 5, 6, 8 | details |
#19 | ACCEPTED | 0.02 s | 5, 6, 8 | details |
#20 | ACCEPTED | 0.06 s | 5, 6, 8 | details |
#21 | WRONG ANSWER | 0.01 s | 1, 6, 7, 8 | details |
#22 | WRONG ANSWER | 0.01 s | 6, 7, 8 | details |
#23 | ACCEPTED | 0.02 s | 6, 8 | details |
#24 | ACCEPTED | 0.06 s | 6, 8 | details |
#25 | ACCEPTED | 0.03 s | 8 | details |
#26 | WRONG ANSWER | 0.10 s | 8 | details |
#27 | WRONG ANSWER | 0.02 s | 3, 4, 5, 6, 8 | details |
#28 | WRONG ANSWER | 0.03 s | 8 | details |
#29 | WRONG ANSWER | 0.10 s | 8 | details |
#30 | WRONG ANSWER | 0.10 s | 8 | details |
Code
#include <iostream> #include <vector> #include <set> using namespace std; bool debug = false; typedef int ll; typedef vector<ll> vll; typedef vector<vll> vvll; typedef pair<ll,ll> pll; typedef set<pll> sp; typedef vector<sp> vsp; #define rep(a,b,c) for(ll a = b; a < c; a++) #define rrep(a,b,c) for(ll a = c-1; a >= b; a--) #define itr_rep(a,b,_type) for(_type::iterator a = b.begin(); a != b.end(); a++) #define pb push_back #define mp make_pair #define sz size #define all(a) a.begin(),a.end() ll t; ll n; vll s; vvll inp; vll n_list; vll b; vll c; vll a; vll a_inv; void sol(); void op(ll index, ll target) { // makes b_{index} = target and adjusts b[n-1] swap(a[index],a[n-2]); swap(a_inv[a[index]],a_inv[a[n-2]]); swap(b[index],b[n-2]); swap(c[index],c[n-2]); b[n-1] = (b[n-1] + b[n-2] - target + n)%n; b[n-2] = target; while (true) { if ((a[n-1]+b[n-1])%n == c[n-1]%n) {return;} // done if ((a[n-1]+b[n-1])%n == c[n-2]%n) { swap(c[n-1],c[n-2]); return; } if ((a[n-2]+b[n-1])%n == c[n-1]%n) { swap(a[n-1],a[n-2]); swap(a_inv[a[n-1]],a_inv[a[n-2]]); return; } if ((a[n-2]+b[n-1])%n == c[n-2]%n) { swap(c[n-1],c[n-2]); swap(a[n-1],a[n-2]); swap(a_inv[a[n-1]],a_inv[a[n-2]]); return; } // fix b_{n-1} because b[n-1] is always the scapegoat thingy. ll r = a_inv[(n + c[n-2] - b[n-2])%n]; // x = c[n-2] - c[n-2] mod n swap(b[n-2],b[r]); swap(c[n-2],c[r]); swap(c[n-2],c[n-1]); } } int main() { cin >> t; inp.resize(t,vll()); n_list.resize(t,0); rep(i,0,t) { cin >> n_list[i]; inp[i].resize(n_list[i],0); rep(j,0,n_list[i]) {cin >> inp[i][j];} } rep(i,0,t) { n = n_list[i]; s.resize(n,0); rep(j,0,n) {s[j] = inp[i][j];} ll _sum = 0; rep(j,0,n) {_sum += s[j];} if (_sum % n == 0) {sol();} else {cout << "NO" << endl;} } return 0; } void sol() { a.resize(n,0); b.resize(n,0); c.resize(n,0); a_inv.resize(n,0); rep(i,0,n) {a[i] = i;} rep(i,0,n) {b[i] = 0;} rep(i,0,n) {c[i] = i;} rep(i,0,n) {a_inv[i] = i;} ll loop; rep(i,0,n-1) { //rep(j,0,n) {cout << (j + b[a_inv[j]] - c[a_inv[j]] + n) % n << " ";} //cout << endl; loop = 0; while (loop < n) { if (b[loop] == 0) { op(loop, s[i]); loop = n; } loop++; } } //rep(i,0,n) {cout << (i + b[a_inv[i]] - c[a_inv[i]] + n) % n << " ";} //cout << endl; cout << "YES" << endl; rep(i,0,n) {cout << b[a_inv[i]] << " ";} cout << endl; // Given that ai=i here too ???... //rep(i,0,n) {cout << c[a_inv[i]] << " ";} //cout << endl; return; } // We have been given some differences bi // We also have ai = i // We need i+bi to be distinct mod n for all i.
Test details
Test 1
Group: 1, 7, 8
Verdict: WRONG ANSWER
input |
---|
637 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 2
Group: 1, 7, 8
Verdict: WRONG ANSWER
input |
---|
246 7 1 1 1 1 1 1 1 7 1 1 2 1 1 7 1 ... |
correct output |
---|
YES 1 1 1 1 1 1 1 YES 1 1 1 1 2 7 1 YES ... |
user output |
---|
YES 1 1 1 1 1 1 1 YES 1 1 2 7 1 1 1 YES ... Truncated |
Test 3
Group: 1, 7, 8
Verdict: WRONG ANSWER
input |
---|
810 8 1 1 1 1 1 1 1 1 8 1 1 1 8 1 1 2 1 ... |
correct output |
---|
YES 1 1 1 1 1 1 1 1 YES 1 1 2 8 1 1 1 1 YES ... |
user output |
---|
YES 1 1 1 1 1 1 1 1 YES 1 1 1 1 1 2 8 1 YES ... Truncated |
Test 4
Group: 1, 7, 8
Verdict: WRONG ANSWER
input |
---|
1000 8 8 8 5 2 8 7 6 5 8 6 5 2 2 8 2 1 6 ... |
correct output |
---|
NO YES 8 2 2 6 2 5 1 6 NO NO ... |
user output |
---|
NO YES 2 2 6 2 5 1 6 8 NO NO ... Truncated |
Test 5
Group: 1, 7, 8
Verdict: WRONG ANSWER
input |
---|
1000 8 2 1 7 7 2 3 8 2 8 4 1 5 4 7 3 5 3 ... |
correct output |
---|
YES 7 2 2 7 1 3 8 2 YES 4 4 7 3 3 5 5 1 YES ... |
user output |
---|
YES 1 2 2 7 3 8 2 7 YES 5 3 5 7 4 1 3 4 YES ... Truncated |
Test 6
Group: 7, 8
Verdict: WRONG ANSWER
input |
---|
1000 16 15 16 6 4 14 2 1 6 2 16 10 2 9... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 7
Group: 7, 8
Verdict: WRONG ANSWER
input |
---|
1000 16 2 4 13 6 8 16 12 8 16 5 9 5 9 ... |
correct output |
---|
YES 13 5 2 8 12 2 8 5 16 16 9 6 9 ... |
user output |
---|
YES 8 9 2 4 11 16 13 5 5 9 6 16 2 ... Truncated |
Test 8
Group: 2, 8
Verdict: WRONG ANSWER
input |
---|
1000 1 1 2 1 2 ... |
correct output |
---|
YES 1 NO YES 3 1 2 ... |
user output |
---|
YES 0 NO YES 3 1 2 ... Truncated |
Test 9
Group: 3, 4, 5, 6, 8
Verdict: WRONG ANSWER
input |
---|
988 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 10
Group: 3, 4, 5, 6, 8
Verdict: WRONG ANSWER
input |
---|
199 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 11
Group: 3, 4, 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 1 1 1 2 1 1 2 2 1 1 1 1 1 2 1 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 12
Group: 3, 4, 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
YES 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
user output |
---|
YES 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... Truncated |
Test 13
Group: 4, 5, 6, 7, 8
Verdict: WRONG ANSWER
input |
---|
963 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 14
Group: 4, 5, 6, 8
Verdict: WRONG ANSWER
input |
---|
979 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 15
Group: 4, 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 3 3 1 2 1 1 2 3 1 3 2 1 1 3 1 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 16
Group: 4, 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 1 2 2 2 2 1 1 1 2 3 1 1 3 2 1 ... |
correct output |
---|
YES 2 2 2 3 1 2 3 1 2 3 1 3 1 3 1 ... |
user output |
---|
YES 1 3 1 2 3 1 2 2 3 1 3 1 2 2 3 ... Truncated |
Test 17
Group: 5, 6, 7, 8
Verdict: WRONG ANSWER
input |
---|
980 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 18
Group: 5, 6, 8
Verdict: WRONG ANSWER
input |
---|
947 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 19
Group: 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 1 2 4 2 1 3 1 2 2 3 1 1 3 1 4 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 20
Group: 5, 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 3 4 4 4 4 4 4 3 3 3 4 4 2 3 3 ... |
correct output |
---|
YES 4 2 4 4 1 3 4 2 4 2 3 4 2 4 4 ... |
user output |
---|
YES 2 3 3 4 2 4 4 1 4 2 4 2 3 3 4 ... Truncated |
Test 21
Group: 1, 6, 7, 8
Verdict: WRONG ANSWER
input |
---|
715 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 22
Group: 6, 7, 8
Verdict: WRONG ANSWER
input |
---|
843 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 23
Group: 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 3 4 5 1 4 4 2 3 2 3 4 1 1 1 2 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 24
Group: 6, 8
Verdict: ACCEPTED
input |
---|
1000 100 5 3 4 3 5 3 3 5 5 4 5 5 5 5 2 ... |
correct output |
---|
YES 4 4 5 5 2 4 4 5 3 5 5 2 5 5 2 ... |
user output |
---|
YES 1 5 5 2 4 4 5 5 2 5 3 4 4 5 3 ... Truncated |
Test 25
Group: 8
Verdict: ACCEPTED
input |
---|
1000 100 88 70 59 44 28 10 19 19 42 16 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... Truncated |
Test 26
Group: 8
Verdict: WRONG ANSWER
input |
---|
1000 100 31 72 52 30 77 56 79 10 88 11 ... |
correct output |
---|
YES 31 62 14 10 66 63 1 82 37 92 3... |
user output |
---|
YES 65 67 10 63 88 22 53 17 72 94 ... Truncated |
Test 27
Group: 3, 4, 5, 6, 8
Verdict: WRONG ANSWER
input |
---|
1000 1 1 2 1 1 ... |
correct output |
---|
YES 1 YES 1 1 YES ... |
user output |
---|
YES 0 YES 1 1 YES ... Truncated |
Test 28
Group: 8
Verdict: WRONG ANSWER
input |
---|
1000 1 1 2 2 2 ... |
correct output |
---|
YES 1 YES 2 2 YES ... |
user output |
---|
YES 0 YES 2 0 YES ... Truncated |
Test 29
Group: 8
Verdict: WRONG ANSWER
input |
---|
1000 100 87 81 29 35 8 98 77 50 46 34 5... |
correct output |
---|
YES 34 74 25 91 80 18 95 26 88 12 ... |
user output |
---|
YES 29 65 24 73 95 85 66 85 40 73 ... Truncated |
Test 30
Group: 8
Verdict: WRONG ANSWER
input |
---|
1000 100 65 92 39 22 67 41 17 65 97 71 ... |
correct output |
---|
YES 9 38 24 59 69 24 63 3 22 35 24... |
user output |
---|
YES 98 35 41 7 77 52 63 97 38 70 8... Truncated |