Submission #743770

# Submission time Handle Problem Language Result Execution time Memory
743770 2023-05-18T00:41:51 Z Abrar_Al_Samit Sorting (IOI15_sorting) C++17
16 / 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;
			swap(S[pos], S[at[pos]]);
			at[S[at[pos]]] = at[pos];
			at[pos] = pos;
		}

		if(i==N-3) {
			if(at[0]==0) return i+1;
			else {
				P[i+1] = Q[i+1] = 0;
				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:46:1: warning: control reaches end of non-void function [-Wreturn-type]
   46 | }
      | ^
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 316 KB Output is correct
5 Correct 1 ms 308 KB Output is correct
6 Correct 1 ms 296 KB Output is correct
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -