// 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";
// }
// }
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
296 KB |
Output is correct |
4 |
Incorrect |
1 ms |
296 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
296 KB |
Output is correct |
4 |
Incorrect |
1 ms |
296 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
304 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
296 KB |
Output is correct |
4 |
Incorrect |
1 ms |
296 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |