답안 #861286

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
861286 2023-10-15T19:39:56 Z Mizo_Compiler Cat (info1cup19_cat) C++14
21.25 / 100
296 ms 12508 KB
#include <bits/stdc++.h>
 
using namespace std;
vector<pair<int,int>> con;
bool vis[200001];int arr[200001];
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t;cin>>t;
    z:while(t--){
        int n;cin>>n;
        for(int i = 1;i<=n;i++)vis[i] = 0;
        con.clear();
        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;i++){
            while(pos[i]!=i&&pos[i]!=n-i+1) {
                int tmp=pos[i];
                con.push_back({i,tmp});
                swap(pos[i],pos[tmp]);
                swap(pos[n-i+1],pos[n-tmp+1]);
            }
        }
        cout<<con.size()<<" "<<con.size()<<"\n";
        for(auto i:con)cout<<i.first<<" "<<i.second<<"\n";
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 344 KB Correctly distinguished between possibility and impossibility
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 600 KB Correct number of moves
2 Correct 14 ms 600 KB Correct number of moves
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 344 KB Correctly distinguished between possibility and impossibility
2 Correct 14 ms 600 KB Correct number of moves
3 Correct 14 ms 600 KB Correct number of moves
4 Correct 14 ms 600 KB Correctly distinguished between possibility and impossibility
5 Correct 5 ms 348 KB Correctly distinguished between possibility and impossibility
6 Correct 6 ms 348 KB Correctly distinguished between possibility and impossibility
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 600 KB Correct number of moves
2 Correct 14 ms 600 KB Correct number of moves
3 Correct 286 ms 10544 KB Correct number of moves
4 Correct 284 ms 10184 KB Correct number of moves
5 Correct 296 ms 12508 KB Correct number of moves
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 344 KB Correctly distinguished between possibility and impossibility
2 Correct 14 ms 600 KB Correct number of moves
3 Correct 14 ms 600 KB Correct number of moves
4 Correct 14 ms 600 KB Correctly distinguished between possibility and impossibility
5 Correct 5 ms 348 KB Correctly distinguished between possibility and impossibility
6 Correct 6 ms 348 KB Correctly distinguished between possibility and impossibility
7 Correct 286 ms 10544 KB Correct number of moves
8 Correct 284 ms 10184 KB Correct number of moves
9 Correct 296 ms 12508 KB Correct number of moves
10 Correct 288 ms 9492 KB Correctly distinguished between possibility and impossibility
11 Correct 248 ms 7784 KB Correctly distinguished between possibility and impossibility
12 Correct 274 ms 11032 KB Correctly distinguished between possibility and impossibility
13 Correct 291 ms 12388 KB Correctly distinguished between possibility and impossibility
14 Correct 266 ms 10776 KB Correctly distinguished between possibility and impossibility