제출 #1090656

#제출 시각아이디문제언어결과실행 시간메모리
1090656owoovo정렬하기 (IOI15_sorting)C++17
20 / 100
1 ms600 KiB
#include "sorting.h"

int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
	int u=1;
	for(int i=0;i<M;i++)if(X[i]!=0||Y[i]!=0)u=0;
	int ans=0,vis[110]={0};
	if(u==1){
		for(int i=0;i<N;i++){
			if(vis[i]||S[i]==i)continue;
			int now=S[i];
			vis[i]=1;
			while(now!=i){
				vis[now]=1;
				P[ans]=now;
				Q[ans]=i;
				now=S[now];
				ans++;
			}
		}
		return ans;

	}else{
		for(int i=0;i<N;i++){
			if(vis[i]||S[i]==i)continue;
			int now=S[i];
			vis[i]=1;
			while(now!=i){
				ans++;
				vis[now]=1;
				if(now==0||now==1){
					P[ans-1]=now^(ans%2);
				}
				if(i==0||i==1){
					Q[ans-1]=i^(ans%2);
				}
				now=S[now];
			}
		}
		if(ans%2==1){
			P[ans]=0;
			Q[ans]=0;
			ans++;
		}
		return ans;

	}
}


#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...