Submission #1363614

#TimeUsernameProblemLanguageResultExecution timeMemory
1363614FZ_LaabidiSorting (IOI15_sorting)C++20
16 / 100
1 ms344 KiB
#include "sorting.h"

#include <bits/stdc++.h>
#include <cmath>
using namespace std;
int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
    // detect the cycles
    vector<vector<int>> cycs;
    vector<bool> visited(N, false);
    for(int i=0; i<N; i++){
        vector<int> cyc;
        int j = i;
        if(visited[j])continue;
        while (!visited[j]){
            cyc.push_back(S[j]);
			visited[j]= true;
            j = S[j];
            
        }
        cycs.push_back(cyc);
    }
    int j = 0;
    for(auto it: cycs){
        int n = it.size();
        int i = n-2;
        while (i>-1){
            if(j%2==0){
                P[j]= 0;
                Q[j]= 0;
            }
            else{
                P[j] = it[i];
                Q[j]= it[i+1];
                i--;
            }
            j++;
        }
    }
   
    return j;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...