Submission #1102974

#TimeUsernameProblemLanguageResultExecution timeMemory
1102974PioneerSorting (IOI15_sorting)C++17
16 / 100
21 ms592 KiB
#include "sorting.h" #include <bits/stdc++.h> using namespace std; const int MAX=100000; int n,m,x[MAX],y[MAX]; int s[MAX]; int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { n=N,m=M; for(int i=0;i<M;i++)x[i]=X[i],y[i]=Y[i]; for(int i=0;i<N;i++)s[i]=S[i]; vector<int> v(n),need(n); vector<pair<int,int>> swaps; for(int i=0;i<n;i++)v[i]=s[i],need[i]=i; for(int i=0;i<m;i++){ swap(v[x[i]],v[y[i]]); vector<int> tov=need; for(int j=i+1;j<m;j++){ swap(tov[x[j]],tov[y[j]]); } bool ok=0; for(int k=0;k<n;k++){ if(tov[k]!=v[k]){ for(int j=0;j<n;j++){ if(tov[j]==v[k]){ ok=1; swaps.push_back({k,j}); swap(v[k],v[j]); break; } } if(ok)break; } } // tov=need; // for(int j=i+1;j<m;j++){ // swap(tov[x[j]],tov[y[j]]); // } // for(int i=0;i<n;i++)cout<<tov[i]<<" "<<v[i]<<"\n"; // cout<<"\n"; if(!ok)swaps.push_back({0,0}); } // cout<<"\n"; assert(v==need); for(int i=0;i<m;i++){ P[i]=swaps[i].first; Q[i]=swaps[i].second; } return M; }
#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...