Submission #422706

#TimeUsernameProblemLanguageResultExecution timeMemory
422706vanicSorting (IOI15_sorting)C++14
0 / 100
1 ms332 KiB
#include "sorting.h"
#include <algorithm>

using namespace std;

const int maxn=2e5+5;

int pos[maxn];

int findSwapPairs(int n, int l[], int m, int x[], int y[], int p[], int q[]){
	for(int i=0; i<n; i++){
		pos[l[i]]=i;
	}
	int br=2;
	int dr;
	for(int i=0; i<n-2; i++){
		swap(l[x[i]], l[y[i]]);
		swap(pos[l[x[i]]], pos[l[y[i]]]);
		p[i]=pos[br];
		q[i]=br;
		dr=l[br];
		swap(l[pos[dr]], l[pos[br]]);
		swap(pos[br], pos[dr]);
		br++;
	}
	int sol;
	if(l[0]==0){
		sol=n-2;
	}
	else{
		sol=n-1;
		swap(l[x[n-2]], l[y[n-2]]);
		swap(pos[l[x[n-2]]], pos[l[y[n-2]]]);
		p[n-2]=0;
		if(l[0]!=0){
			q[n-2]=1;
		}
		else{
			q[n-2]=0;
		}
	}
	return sol;
}


Compilation message (stderr)

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:10:39: warning: unused parameter 'm' [-Wunused-parameter]
   10 | int findSwapPairs(int n, int l[], int m, int x[], int y[], int p[], int q[]){
      |                                   ~~~~^
#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...