| 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 |
