CSES - Datatähti Open 2021 - Results
Submission details
Task:Sorting
Sender:koosaga
Submission time:2021-01-30 11:24:36 +0200
Language:C++ (C++17)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED36
#2ACCEPTED64
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#2ACCEPTED0.02 s2details
#3ACCEPTED0.01 s1, 2details
#4ACCEPTED0.01 s1, 2details

Code

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;
using lint = long long;

void solve(){
	int n; cin >> n;
	vector<int> a(n);
	for(auto &i : a) cin >> i;
	int ret = 0;
	for(int i=0; i<n; i++){
		for(int j=i+1; j<n; j++){
			if(a[j] < a[i]) ret++;
		}
	}
	if(n <= 3){
		puts(ret ? "NO" : "YES");
	}
	else if(n > 4){
		puts(ret % 2 ? "NO" : "YES");
	}
	else{
		if(is_sorted(a.begin(), a.end())) puts("YES");
		else{
			swap(a[0], a[2]);
			swap(a[1], a[3]);
			puts(is_sorted(a.begin(), a.end()) ? "YES" : "NO");
		}
	}
}

int main(){
	int t; cin >> t;
	while(t--) solve();
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

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

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
YES
NO
YES
...
Truncated

Test 3

Group: 1, 2

Verdict: ACCEPTED

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

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
YES
NO
YES
...
Truncated