Task: | Sorting |
Sender: | gilgamesh |
Submission time: | 2021-01-31 01:07:48 +0200 |
Language: | C++ (C++11) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1, 2 | details |
#2 | WRONG ANSWER | 0.01 s | 2 | details |
#3 | WRONG ANSWER | 0.01 s | 1, 2 | details |
#4 | WRONG ANSWER | 0.01 s | 1, 2 | details |
Code
#include <bits/stdc++.h> using namespace std; #define int long long #define all(x) (x).begin(),(x).end() #define pb push_back signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while(t--){ int n; cin >> n; int a[n]; for(int i = 0; i < n; ++i) { cin >> a[i]; } if(n <= 3) { bool ok = 1; for(int i = 0; i < n; ++i) { ok &= a[i] == i + 1; } cout << (ok ? "YES\n" : "NO\n"); continue; } if(n == 4) { array<int, 4> last = {a[0], a[1], a[2], a[3]}; vector<array<int, 4>> poss; poss.pb({1, 2, 3, 4}); poss.pb({3, 4, 1, 2}); bool ok = 0; for(auto i : poss) { ok |= last == i; } cout << (ok ? "YES\n" : "NO\n"); continue; } int ind = 0, sz = n; while(sz > 4) { int id = 0; if(a[n - 1] == 1) { swap(a[n - 1], a[n - 3]); swap(a[n - 2], a[n - 4]); } else if(a[ind + 1] == 1) { swap(a[ind + 1], a[ind + 3]); swap(a[ind + 2], a[ind + 4]); } for(int i = ind; i < n; ++i) { if(a[i] == 1) { id = i; break; } } if(id != ind) { swap(a[id], a[ind]); swap(a[id + 1], a[ind + 1]); } --sz; for(int i = ind + 1; i < n; ++i) { --a[i]; } ++ind; } array<int, 4> last = {a[n - 4], a[n - 3], a[n - 2], a[n - 1]}; vector<array<int, 4>> poss; poss.pb({1, 2, 3, 4}); poss.pb({3, 4, 1, 2}); poss.pb({4, 3, 2, 1}); poss.pb({2, 1, 4, 3}); poss.pb({2, 3, 1, 4}); poss.pb({1, 4, 2, 3}); bool ok = 0; for(auto i : poss) { ok |= last == i; } cout << (ok ? "YES\n" : "NO\n"); } }
Test details
Test 1
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
153 1 1 2 1 2 ... |
correct output |
---|
YES YES NO NO NO ... |
user output |
---|
YES YES NO NO NO ... Truncated |
Test 2
Group: 2
Verdict: WRONG ANSWER
input |
---|
1000 59 35 29 32 50 11 15 9 21 19 45 2... |
correct output |
---|
YES NO YES NO YES ... |
user output |
---|
YES NO NO NO NO ... Truncated |
Test 3
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
720 6 1 6 4 5 2 3 6 6 3 2 1 5 4 ... |
correct output |
---|
YES NO NO NO YES ... |
user output |
---|
NO NO NO NO YES ... Truncated |
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 8 7 4 2 8 6 3 5 1 8 3 8 2 7 5 4 6 1 ... |
correct output |
---|
NO NO YES NO YES ... |
user output |
---|
NO NO NO NO NO ... Truncated |