Submission #568628

#TimeUsernameProblemLanguageResultExecution timeMemory
568628uroskSorting (IOI15_sorting)C++14
20 / 100
1 ms468 KiB
#include "sorting.h" #define here cerr<<"===========================================\n" #include <bits/stdc++.h> #define ld double #define ll int #define ull unsigned long long #define llinf 100000000000000000LL // 10^17 #define iinf 2000000000 // 2*10^9 #define pb push_back #define popb pop_back #define fi first #define sc second #define endl '\n' #define pii pair<int,int> #define pll pair<ll,ll> #define pld pair<ld,ld> #define sz(a) int(a.size()) #define all(a) a.begin(),a.end() #define ceri(a,l,r) {for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;} using namespace std; #define maxn 105 ll n,m; ll a[maxn]; ll p[maxn]; bool sorted(){ for(ll i = 1;i<n;i++) if(a[i]>a[i+1]) return 0; return 1; } int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { n = N; m = M; for(ll i = 1;i<=n;i++) a[i] = S[i-1]+1; for(ll i = 1;i<=n;i++) p[a[i]] = i; ll sum = 0; for(ll i = 0;i<m;i++) sum+=X[i] + Y[i]; ceri(a,1,n); if(sum==0){ for(ll i = 1;i<=n;i++){ if(sorted()) return i-1; P[i-1] = i-1; Q[i-1] = p[i]-1; ll x = a[i]; a[p[i]] = a[i]; a[i] = i; swap(p[i],p[x]); } return n; } ll cnt = 0; ll swps = 0; for(ll i = 1;i<=n;i++){ if(sorted()) return swps; if(i==2&&cnt==0){ cnt++; P[swps] = 0; Q[swps] = 0; swps++; i--; swap(a[1],a[2]); continue; } P[swps] = i-1; Q[swps] = p[i]-1; ll x = a[i]; a[p[i]] = a[i]; a[i] = i; swps++; swap(p[i],p[x]); swap(a[1],a[2]); } if(sorted()) return swps; P[swps] = 0; Q[swps] = 0; swps++; return swps; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...