Submission #287455

#TimeUsernameProblemLanguageResultExecution timeMemory
287455AaronNaiduSorting (IOI15_sorting)C++14
0 / 100
3 ms768 KiB
#include <bits/stdc++.h> #include "sorting.h" using namespace std; vector<int> s; int n; int p[100000]; int q[100000]; bool sorted() { for (int i = 0; i < n; i++) { if (s[i] != i) { return false; } } return true; } int findSwapPairs(int N,int S[],int M, int X[],int Y[], int P[],int Q[]) { for (int i = 0; i < M; i++) { P[i] = 0; Q[i] = 0; } n = N; for (int i = 0; i < N; i++) { s.push_back(S[i]); } for (int i = N-1; i >= 0; i--) { if (sorted()) { //finish(N-1-i); return N-1-i; } swap(s[X[N-1-i]], s[Y[N-1-i]]); swap(S[X[N-1-i]], S[Y[N-1-i]]); /*cout << "He swaps " << X[N-1-i] << " and " << Y[N-1-i] << "\n"; cout << "Sequence is now: "; for (int k = 0; k < n; k++) { cout << s[k] << " "; } cout << "\n";*/ for (int j = 0; j < N; j++) { if (S[j] == i) { P[N-1-i] = j; p[N-1-i] = j; Q[N-1-i] = i; q[N-1-i] = i; swap(s[j], s[i]); swap(S[j], S[i]); /*cout << "We swap " << j << " and " << i << "\n"; cout << "Sequence is now: "; for (int k = 0; k < n; k++) { cout << s[k] << " "; } cout << "\n";*/ break; } if (j == N-1) { assert(false); } } } //finish(N); assert(sorted()); return N; }
#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...