Task: | Sorting |
Sender: | jenkinsser |
Submission time: | 2021-01-31 14:33:09 +0200 |
Language: | C++ (C++17) |
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 | TIME LIMIT EXCEEDED | -- | 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> #define pb push_back #define mp make_pair #define st first #define nd second #define pii pair<int,int> #define N 2000005 #define INF 1e9+5 #define sp " " #define nl "\n" #define all(x) x.begin(),x.end() #define fastio() ios_base::sync_with_stdio(0);cin.tie(0); #define fori(i,l,r) for(int i=l;i<=r;i++) #define forf(i,r) fori(i,1,r) #define rof(i,r,l) for(int i=r;i>=l;i--) #define ll long long #define int ll using namespace std; int binpow(int x,int y){ int ans=1; for(;y>0;x*=x,y>>=1){ if(y&1) ans*=x; } return ans; } void solve(){ int n; cin >> n; vector<int> a(n); for(int i=0;i<n;i++){ cin >> a[i]; } bool flag=false; vector<int> tmp(n); if(is_sorted(a.begin(),a.end())){ cout << "YES\n"; return; } while(!flag){ flag=true; tmp=a; for(int i=0;i<n-1;i++){ if(a[i]>a[i+1]){ flag=false; bool ok=false; for(int j=i+2;j<n-1;j++){ if(a[j]>a[j-1]){ swap(a[i],a[i+1]); swap(a[j],a[j+1]); ok=true; } } if(!ok){ swap(a[i],a[i+1]); if(i<n-3){ swap(a[i+2],a[i+3]); } else if(i>1){ swap(a[0],a[1]); } else{ cout << "NO\n"; return; } } } } if(is_sorted(a.begin(),a.end())){ cout << "YES\n"; return; } if(tmp==a){ cout << "NO\n"; return; } } for(int i=0;i<n-1;i++){ if(a[i]>a[i+1]){ cout << "NO\n"; return; } } cout << "YES\n"; } int32_t main(){ fastio() int t=1; cin >> t; while(t--){ solve(); } }
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: TIME LIMIT EXCEEDED
input |
---|
1000 59 35 29 32 50 11 15 9 21 19 45 2... |
correct output |
---|
YES NO YES NO YES ... |
user output |
---|
(empty) |
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 |
---|
YES 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 |