Submission #523537

#TimeUsernameProblemLanguageResultExecution timeMemory
523537Farhan_HYCat (info1cup19_cat)C++14
3.50 / 100
1072 ms19096 KiB
#include <bits/stdc++.h> #define int long long #define float double #define pb push_back #define F first #define S second #define T int t; cin >> t; while(t--) #define IOS ios::sync_with_stdio(); cin.tie(0); cout.tie(0); using namespace std; const int inf = 8e18; const int N = 1e6 + 6; const int M = 1e3 + 3; const int mod = 1e9 + 7; const float pi = atan(1) * 4; int a[N]; int n, m; map<int, int> Pos; vector<pair<int, int>> v; void Swap(int i, int p) { swap(Pos[a[i]], Pos[a[p]]); swap(a[i], a[p]); v.pb({i, p}); swap(Pos[a[n - p + 1]], Pos[a[n - p + 1]]); swap(a[n - i + 1], a[n - p + 1]); } main() { T { v.clear(); Pos.clear(); cin >> n; for(int i = 1; i <= n ; i++) cin >> a[i], Pos[a[i]] = i; for(int i = 1; i <= n / 2; i++) { int p = Pos[i]; if (a[i] == i) continue; if (p < n / 2) Swap(i, p); else { if (n - p - 1 == i) { Swap(i, i + 1); Swap(i, p); } else Swap(i, p); } } bool ok = true; for(int i = 1; i <= n; i++) ok &= a[i] >= a[i - 1]; if (!ok) { cout << "-1\n"; continue; } cout << v.size() << ' ' << v.size() << '\n'; for(auto x: v) cout << x.F << ' ' << x.S << '\n'; } }

Compilation message (stderr)

cat.cpp:31:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   31 | main()
      | ^~~~
#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...