Submission #830422

#TimeUsernameProblemLanguageResultExecution timeMemory
830422mindiyakSorting (IOI15_sorting)C++17
20 / 100
4 ms340 KiB
#include "sorting.h"
#include <queue>
#include <vector>
#include <iostream>
using namespace std;

void print(int N,int A[]){
	// for(int i=0;i<N;i++)cout << A[i] << " ";
	// cout << endl;
}

int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
    
	int R=0;
	int sorted = 0;

	for(int i=0;i<N;i++)if(S[i] == i)sorted++;

	print(N,S);

	// cout << sorted << endl;

	while(sorted<N){
		int dual = -1;
		int pos = -1;
		for(int i=0;i<N;i++){
			if(S[i] == i)continue;
			if(S[i] != i)pos = i;
			// cout << i << " " << S[i] << " " << S[S[i]] << endl;
			if(i == S[S[i]]){
				dual = 1;
				break;
			}
		}
		sorted += 1;
		P[R] = pos;
		Q[R] = S[pos];
		// cout << "swap " << dual << " " << P[R] <<  " " << Q[R] << endl;
		if(dual == 1){
			sorted += 1;
		}
		swap(S[P[R]],S[Q[R]]);
		R++;
		print(N,S);
	}

	return R;
}


Compilation message (stderr)

sorting.cpp: In function 'void print(int, int*)':
sorting.cpp:7:16: warning: unused parameter 'N' [-Wunused-parameter]
    7 | void print(int N,int A[]){
      |            ~~~~^
sorting.cpp:7:22: warning: unused parameter 'A' [-Wunused-parameter]
    7 | void print(int N,int A[]){
      |                  ~~~~^~~
sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:12:39: warning: unused parameter 'M' [-Wunused-parameter]
   12 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                   ~~~~^
sorting.cpp:12:46: warning: unused parameter 'X' [-Wunused-parameter]
   12 | int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
      |                                          ~~~~^~~
sorting.cpp:12:55: warning: unused parameter 'Y' [-Wunused-parameter]
   12 | int findSwapPairs(int N, int S[], 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...