#include "sorting.h"
#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int n, m;
int x[N], y[N], pos[N], a[N];
vector<pair<int, int>> v;
bool check(int mid){
v.clear();
/* for(int i=0;i<n;i++){
if(mid == 4)cout << a[i] << ", pos = " << pos[i] << '\n';
}cout << '\n';*/
for(int i=0;i<mid;i++){
swap(a[x[i]], a[y[i]]);
}for(int i=0;i<n;i++)pos[a[i]] = i;
int ans = 0;
/* for(int i=0;i<n;i++){
if(mid == 3)cout << a[i] << ", pos = " << pos[i] << '\n';
}cout << '\n';*/
for(int i=0;i<n;i++){
if(pos[i] == i){
continue;
}else {
ans++;
int f = i, s = pos[i];
swap(pos[f], pos[s]);
swap(a[f], a[s]);
v.push_back({f, s});
}
}
return (ans <= mid);
}
int findSwapPairs(int NN, int A[], int MM, int X[], int Y[], int P[], int Q[]) {
n = NN, m = MM;
int l = 0, r = m;
for(int i=0;i<m;i++){
x[i] = X[i];
y[i] = Y[i];
}
while(l+1 < r){
for(int i=0;i<n;i++)a[i] = A[i];
int mid = (l+r)/2;
if(check(mid)){
r = mid;
}else {
l = mid;
}
}for(int i=0;i<n;i++)a[i] = A[i];
check(r);
for(int i=0;i<r;i++){
if(i < v.size()){
P[i] = v[i].first;
Q[i] = v[i].second;
}else {
P[i] = Q[i] = 0;
}
}
return r;
}
Compilation message
sorting.cpp:2:10: fatal error: grader.cpp: No such file or directory
2 | #include "grader.cpp"
| ^~~~~~~~~~~~
compilation terminated.