# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
315170 | 2020-10-22T03:46:12 Z | daniel920712 | Cat (info1cup19_cat) | C++14 | 744 ms | 15088 KB |
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <algorithm> #include <vector> using namespace std; int all[3000005]; int where[3000005]; vector < pair < int , int > > ans; int main() { int T,x,y,ok=1,N,i,j,con=0,t; scanf("%d",&T); while(T--) { con=0; t=0; ok=1; ans.clear(); scanf("%d",&N); for(i=1;i<=N;i++) { scanf("%d",&all[i]); where[all[i]]=i; } for(i=1;i<=N/2;i++) { if(all[i]!=i) { x=i; y=where[i]; if(N-x+1==y) { t=1; if(x+1==y) break; swap(all[x],all[x+1]); where[all[x]]=x; where[all[x+1]]=x+1; ans.push_back(make_pair(x,x+1)); swap(all[N-x+1],all[N-x]); where[all[N-x+1]]=N-x+1; where[all[N-x]]=N-x; i--; } else { con++; swap(all[x],all[y]); where[all[x]]=x; where[all[y]]=y; ans.push_back(make_pair(x,y)); swap(all[N-x+1],all[N-y+1]); where[all[N-x+1]]=N-x+1; where[all[N-y+1]]=N-y+1; if(all[N-i+1]!=N-i+1) break; } } else { if(all[N-i+1]!=N-i+1) break; } } for(i=1;i<=N;i++) if(all[i]!=i) ok=0; if(ok) { printf("%d %d\n",con+t,ans.size()); for(auto i:ans) printf("%d %d\n",i.first,i.second); } else printf("-1\n"); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 7 ms | 384 KB | Valid reconstruction |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 512 KB | Output is correct |
2 | Correct | 30 ms | 512 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 7 ms | 384 KB | Valid reconstruction |
2 | Correct | 30 ms | 512 KB | Output is correct |
3 | Correct | 30 ms | 512 KB | Output is correct |
4 | Partially correct | 34 ms | 640 KB | Valid reconstruction |
5 | Partially correct | 13 ms | 512 KB | Valid reconstruction |
6 | Partially correct | 10 ms | 384 KB | Valid reconstruction |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 512 KB | Output is correct |
2 | Correct | 30 ms | 512 KB | Output is correct |
3 | Correct | 677 ms | 13544 KB | Output is correct |
4 | Correct | 654 ms | 12252 KB | Output is correct |
5 | Correct | 699 ms | 15088 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 7 ms | 384 KB | Valid reconstruction |
2 | Correct | 30 ms | 512 KB | Output is correct |
3 | Correct | 30 ms | 512 KB | Output is correct |
4 | Partially correct | 34 ms | 640 KB | Valid reconstruction |
5 | Partially correct | 13 ms | 512 KB | Valid reconstruction |
6 | Partially correct | 10 ms | 384 KB | Valid reconstruction |
7 | Correct | 677 ms | 13544 KB | Output is correct |
8 | Correct | 654 ms | 12252 KB | Output is correct |
9 | Correct | 699 ms | 15088 KB | Output is correct |
10 | Partially correct | 672 ms | 12020 KB | Valid reconstruction |
11 | Partially correct | 628 ms | 10024 KB | Valid reconstruction |
12 | Partially correct | 682 ms | 13288 KB | Valid reconstruction |
13 | Partially correct | 744 ms | 14960 KB | Valid reconstruction |
14 | Partially correct | 667 ms | 12652 KB | Valid reconstruction |