답안 #743776

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
743776 2023-05-18T00:50:14 Z Abrar_Al_Samit 정렬하기 (IOI15_sorting) C++17
0 / 100
1 ms 340 KB
#include <bits/stdc++.h>
#include "sorting.h"
using namespace std;

int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
	if(N<3) {
		if(N==1) return 0;
		swap(S[X[0]], S[Y[0]]);
		if(S[0]<S[1]) {
			P[0] = Q[0] = 0;
		} else {
			P[0] = 0, Q[0] = 1;
		}
		return 1;
	}

	int at[N];
	for(int i=0; i<N; ++i) {
		at[S[i]] = i;
	}	

	for(int i=0; i<N-2; ++i) {
		swap(S[X[i]], S[Y[i]]);
		at[S[0]] = 0;
		at[S[1]] = 1;

		int pos = N-i-1;

		if(at[pos]==pos) {
			P[i] = Q[i] = 0;
		} else {
			P[i] = at[pos], Q[i] = pos;
			at[S[pos]] = at[pos];
			at[pos] = pos;
			swap(S[pos], S[at[pos]]);
		}

		if(i==N-3) {
			if(at[0]==0) return i+1;
			else {
				if(Y[i]) {
					P[i+1] = Q[i+1] = 0;
				} else {
					P[i+1] = 0, Q[i+1] = 1;
				}
				return i+2;
			}
		}
	}
}


Compilation message

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:5:39: warning: unused parameter 'M' [-Wunused-parameter]
    5 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                   ~~~~^
sorting.cpp:50:1: warning: control reaches end of non-void function [-Wreturn-type]
   50 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -