Submission #922604

#TimeUsernameProblemLanguageResultExecution timeMemory
922604maxFedorchukCat (info1cup19_cat)C++17
0 / 100
14 ms3164 KiB
#include "bits/stdc++.h" using namespace std; const long long MX=2e5+10; int a[MX]; int p[MX]; pair < int , int > vp1[MX]; pair < int , int > vp2[MX]; int n; void swp(int i,int j) { swap(a[i],a[j]); swap(p[i],p[j]); swap(a[n-i+1],a[n-j+1]); swap(p[n-i+1],p[n-j+1]); } void fun() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; p[a[i]] = i; } for (int i = 1; i <= n / 2; i++) { if (a[i] + a[n - i + 1] != (n + 1)) { cout << "-1\n"; return; } } int o1 = 0, o2 = 0; for (int i = 1; i <= n / 2; i++) { if (a[i] == i) { continue; } if (a[i] == a[n - i + 1]) { vp1[++o1] = make_pair(i, n - i + 1); } else { vp2[++o2] = make_pair(i, p[i]); swp(i, p[i]); } } if (o1 & 1) { cout << "-1\n"; return; } while (o1) { vp2[++o2] = make_pair(vp1[o1].first, vp1[o1 - 1].first); vp2[++o2] = make_pair(vp1[o1].first, vp1[o1 - 1].second); o1-=2; } cout << o2 << " " << o2 << "\n"; for (int i = 1; i <= o2; i++) { cout << vp2[i].first << " " << vp2[i].second << "\n"; } } int main() { cin.tie(0); ios_base::sync_with_stdio(0); int t; cin >> t; while (t--) { fun(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...