Submission #1087019

#TimeUsernameProblemLanguageResultExecution timeMemory
1087019the_coding_poohSorting (IOI15_sorting)C++14
16 / 100
10 ms520 KiB
#include "sorting.h" #include <bits/stdc++.h> #define uwu return 0; using namespace std; const int SIZE = 2e5 + 5; int s[SIZE], tar[SIZE], x[SIZE], y[SIZE], p[SIZE], q[SIZE], pos_of_val[SIZE]; void build(int M){ for(int i = M - 1; i >= 0; i--){ swap(tar[x[i]], tar[y[i]]); } return; } void get_sequence(int N, int M){ for(int i = 0; i < M; i++){ swap(s[x[i]], s[y[i]]); for(int j = 0; j < N; j++){ pos_of_val[s[j]] = j; } swap(tar[x[i]], tar[y[i]]); for(int j = 0; j < N; j++){ if(s[j] != tar[j]){ swap(s[j], s[pos_of_val[tar[j]]]); p[i] = j; q[i] = pos_of_val[tar[j]]; break; } } } return; } int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { for(int i = 0; i < N; i++){ tar[i] = i; s[i] = S[i]; } for(int i = 0; i < M; i++){ x[i] = X[i]; y[i] = Y[i]; } build(M); get_sequence(N, M); for(int i = 0; i < M; i++){ P[i] = p[i]; Q[i] = q[i]; } for(int i = 0; i < N; i++){ assert(s[i] == i); } return M; }
#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...