# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
861274 | 2023-10-15T19:01:23 Z | Ahmed57 | Cat (info1cup19_cat) | C++17 | 1000 ms | 4828 KB |
#include <bits/stdc++.h> using namespace std; vector<pair<int,int>> con; int vis[200001],arr[200001]; void dfs(int i,int st){ if(st!=i)con.push_back({st,i}); vis[i] = 1; if(vis[arr[i]]==0)dfs(arr[i],st); } int main(){ int t;cin>>t; z:while(t--){ int n;cin>>n; for(int i = 1;i<=n;i++)vis[i] = 0; int pos[n+1]; for(int i = 1;i<=n;i++){ cin>>arr[i];pos[arr[i]] = i; } int g = 0;int lol = 0; for(int i = 1;i<=n/2;i++){ if(arr[i]!=i)g++; if(n-arr[i]+1!=arr[n-i+1]){ cout<<-1<<endl; goto z; }if(arr[i]>n/2){ lol++; } } if(lol&1){ cout<<-1<<endl; goto z; } for(int i = 1;i<=n/2;i++){ if(!vis[i])dfs(i,i); } cout<<con.size()<<" "<<con.size()<<endl; for(auto i:con)cout<<i.first<<" "<<i.second<<endl; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1025 ms | 4296 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1066 ms | 4828 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1025 ms | 4296 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1066 ms | 4828 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1025 ms | 4296 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |