CSES - Datatähti Open 2021 - Results
Submission details
Task:Sorting
Sender:ajpiano
Submission time:2021-01-30 16:48:03 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#10.01 s1, 2details
#20.01 s2details
#30.01 s1, 2details
#40.01 s1, 2details

Code

#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
typedef long long ll;
typedef pair<int,int> pi;
vector<int> nums, pos;
////{a-1, a}, {b-1,b}
//void sw(int a, int b){
// swap(nums[pos[a]], nums[pos[b]]);
// swap(pos[a], pos[b]);
// swap(nums[pos[a-1]], nums[pos[b-1]]);
// swap(pos[a-1], pos[b-1]);
//}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
int t; cin >> t;
while(t--){
int n; cin >> n;
nums.resize(n+1), pos.resize(n+1);
for(int i = 1; i <= n; i++) cin >> nums[i];
for(int i = 1; i <= n; i++) pos[nums[i]] = i;
int n2 = n;
// for(; n2 > 4; n2--){
// if(pos[n2] == n2) continue;
// if(pos[n2] > 3){
// sw(n2,nums[2]);
// }
// sw(n2, nums[n2]);
// }
bool good = 1;
for(int i = 1; i <= n2; i++){
if(pos[i] != i) good = 0;
}
if(n2 == 4){
if(nums[1] == 3 &&
nums[2] == 4 &&
nums[3] == 1 &&
nums[4] == 2
){
good = 1;
}
}
if(n > 4) good = 1;
if(good) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}

Test details

Test 1

Group: 1, 2

Verdict:

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:

input
1000
59
35 29 32 50 11 15 9 21 19 45 2...

correct output
YES
NO
YES
NO
YES
...

user output
YES
YES
YES
YES
YES
...
Truncated

Test 3

Group: 1, 2

Verdict:

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

Test 4

Group: 1, 2

Verdict:

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