Submission #557517

#TimeUsernameProblemLanguageResultExecution timeMemory
557517MDSProSorting (IOI15_sorting)C++14
0 / 100
3 ms468 KiB
// MDSPro // #include "sorting.h" #include <bits/stdc++.h> #define trav(i,n) for(int i = 0; i < (n); i++) #define pb push_back #define se second #define fi first #define all(x) (x).begin(),(x).end() using namespace std; using ll = long long; using ld = long double; using pii = pair<int,int>; using vi = vector<int>; const ld PI = 3.141592653589793; const ll MOD = 1e9+7; const int INF = 1e9; const ll INFLL = 4e18; const double EPS = 1e-9; const int SIZE = 1000*1007; int findSwapPairs(int n, int s[], int m, int x[], int y[], int p[], int q[]) { auto isSorted = [&n,&s]()->bool{ for(int i = 1; i < n; ++i){ if(s[i-1] > s[i]) return false; } return true; }; int ans = 0; for(int j = 0; j < n; ++j){ swap(s[x[j]],s[y[j]]); // if(isSorted()) break; int mn = s[j]; int mni = j; for(int i = j+1; i < n; ++i){ if(mn > s[i]) { mni = i; mn = s[i]; } } swap(s[j],s[mni]); p[j] = j; q[j] = mni; ans++; } for(int i = ans; i < m; ++i) p[i] = q[i] = 0; if(isSorted()) return ans; p[m-1] = 0; q[m-1] = 1; return m; } // int main(){ // int n = 5; // int arr[] = {-2,104,-45,14,12}; // for(int i: arr) cout << i << " "; // cout << endl << endl; // int m = 7; // int x[] = {0,0,0,0,0,0,0}; // int y[] = {1,1,1,1,1,1,1}; // int p[m] = {0}; // int q[m] = {0}; // int r = findSwapPairs(n,arr,m,x,y,p,q); // cout << r << " swaps is need!\n"; // for(int i = 0; i < m; ++i){ // cout << "swap " << p[i] << " and " << q[i] << ".\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...