#include "sorting.h"
#include <bits/stdc++.h>
using namespace std;
//static FILE *_inputFile, *_outputFile;
int num;
int pos[200001];
int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[])
{
for(int i=0;i<N;i++)
pos[S[i]]=i;
if(pos[0]!=0)
{
pos[S[X[num]]]=Y[num];
pos[S[Y[num]]]=X[num];
swap(S[X[num]],S[Y[num]]);
P[num]=pos[0];
Q[num]=0;
pos[0]=0;
pos[S[0]]=pos[0];
swap(S[0],S[pos[0]]);
num++;
}
if(pos[1]>1)
{
pos[S[X[num]]]=Y[num];
pos[S[Y[num]]]=X[num];
swap(S[X[num]],S[Y[num]]);
P[num]=pos[1];
Q[num]=0;
pos[1]=0;
pos[S[0]]=pos[1];
swap(S[0],S[pos[1]]);
num++;
}
//for(int i=0;i<N;i++)
// fprintf(_outputFile, "%d ", pos[S[i]]);
for(int i=2;i<N;i++)
{
if(S[i]!=i)
{
pos[S[X[num]]]=Y[num];
pos[S[Y[num]]]=X[num];
swap(S[X[num]],S[Y[num]]);
P[num]=pos[i];
Q[num]=i;
pos[S[i]]=pos[i];
swap(S[pos[i]],S[i]);
num++;
}
}
if(pos[0]!=0)
num++;
return num;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |