Submission #31819

#TimeUsernameProblemLanguageResultExecution timeMemory
31819top34051Sorting (IOI15_sorting)C++14
36 / 100
16 ms460 KiB
#include "sorting.h"
#include<bits/stdc++.h>
using namespace std;
#define maxn 2005

int a[maxn], pos[maxn];

int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
    int i,x,now,cnt;
    for(now=-1;now<M;now++) {
        if(now>=0) swap(S[X[now]], S[Y[now]]);

        for(i=0;i<N;i++) a[i] = S[i];
        for(i=0;i<N;i++) pos[a[i]] = i;

        cnt = 0;
        for(i=0;i<N;i++) {
            x = pos[i];
            if(i!=x) {
                pos[a[i]] = x;
                swap(a[i], a[x]);
                P[cnt] = i; Q[cnt] = x;
                cnt++;
            }
        }
        while(cnt<=now) P[cnt] = Q[cnt] = 0, cnt++;

        if(cnt==now+1) {
            for(i=0;i<N;i++) a[i] = i;
            for(i=now;i>=0;i--) {
                P[i] = a[P[i]]; Q[i] = a[Q[i]];
                swap(a[X[i]], a[Y[i]]);
            }
            return now+1;
        }
    }
}

Compilation message (stderr)

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:37:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...