답안 #861283

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
861283 2023-10-15T19:34:19 Z Ahmed57 Cat (info1cup19_cat) C++17
36.25 / 100
290 ms 12488 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(arr[i]!=i&&arr[n-i+1]!=i) {
                int tmp=arr[i];
                con.push_back({i,tmp});
                swap(arr[i],arr[tmp]);
                swap(arr[n-i+1],arr[n-tmp+1]);
            }
        }
        cout<<con.size()<<" "<<con.size()<<"\n";
        for(auto i:con)cout<<i.first<<" "<<i.second<<"\n";
    }
}

Compilation message

cat.cpp: In function 'int main()':
cat.cpp:13:13: warning: variable 'pos' set but not used [-Wunused-but-set-variable]
   13 |         int pos[n+1];
      |             ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 348 KB Correctly distinguished between possibility and impossibility
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 600 KB Output is correct
2 Correct 20 ms 904 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 348 KB Correctly distinguished between possibility and impossibility
2 Correct 14 ms 600 KB Output is correct
3 Correct 20 ms 904 KB Output is correct
4 Correct 14 ms 604 KB Correctly distinguished between possibility and impossibility
5 Correct 5 ms 344 KB Correctly distinguished between possibility and impossibility
6 Correct 5 ms 348 KB Correctly distinguished between possibility and impossibility
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 600 KB Output is correct
2 Correct 20 ms 904 KB Output is correct
3 Correct 289 ms 10564 KB Output is correct
4 Correct 267 ms 9972 KB Output is correct
5 Correct 290 ms 12488 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 348 KB Correctly distinguished between possibility and impossibility
2 Correct 14 ms 600 KB Output is correct
3 Correct 20 ms 904 KB Output is correct
4 Correct 14 ms 604 KB Correctly distinguished between possibility and impossibility
5 Correct 5 ms 344 KB Correctly distinguished between possibility and impossibility
6 Correct 5 ms 348 KB Correctly distinguished between possibility and impossibility
7 Correct 289 ms 10564 KB Output is correct
8 Correct 267 ms 9972 KB Output is correct
9 Correct 290 ms 12488 KB Output is correct
10 Correct 281 ms 9176 KB Correctly distinguished between possibility and impossibility
11 Correct 252 ms 7576 KB Correctly distinguished between possibility and impossibility
12 Correct 282 ms 11212 KB Correctly distinguished between possibility and impossibility
13 Correct 288 ms 12488 KB Correctly distinguished between possibility and impossibility
14 Correct 273 ms 10724 KB Correctly distinguished between possibility and impossibility