#include <bits/stdc++.h>
#define f0(i, n) for(int i(0); i<(n); i++)
#define f1(i, n) for(int i(1); i<=(n); i++)
using namespace std;
typedef long long ll;
const int N = 1002;
int n, testcase, a[N], taken[N];
void solve(){
vector <int> save;
cin >> n;
f1(i, n) cin >> a[i];
if(n==2){
cout << 0 << endl;
return ;
}
/// first one is crazy old lady
f1(i, n) if(a[i] != i) save.push_back(i); /// sai cho
if(a[2]==1){
/// seat of the COL is not 1
cout << save[save.size() - 1] << endl;
return ;
}
int sz = save.size() - 1;
/// seat of the COL is 1
memset(taken, 0, sizeof(taken));
bool ok = 0; int x = 0, y = 0;
f1(i, n){
if(ok && a[i] != i){
cout << 0 << endl;
return ;
}
if(ok && a[i]==i) continue;
if(a[i] != i){
///x = i + 1, y;
if(i >= x && i <= y){
cout << 0 << endl;
return ;
}
x = i + 1, y = a[i] - 1;
}
if(a[i]==1) ok = 1;
}
cout << 1 << endl;
}
int main(){
ios_base::sync_with_stdio(0);
cin >> testcase;
while(testcase--) solve();
}
Compilation message
crazy.cpp: In function 'void solve()':
crazy.cpp:26:9: warning: unused variable 'sz' [-Wunused-variable]
int sz = save.size() - 1;
^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Incorrect |
3 ms |
376 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |