답안 #743780

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
743780 2023-05-18T00:55:49 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]) {
			return 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-1; ++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];
			swap(S[pos], S[at[pos]]);
			at[pos] = 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;
		// 	}
		// }
	}
	return N-1;
}


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:5:46: warning: unused parameter 'X' [-Wunused-parameter]
    5 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                          ~~~~^~~
sorting.cpp:5:55: warning: unused parameter 'Y' [-Wunused-parameter]
    5 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                                   ~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 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 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 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 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 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 -