Submission #572019

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
5720192022-06-03 09:48:20CSQ31Sorting (IOI15_sorting)C++17
100 / 100
169 ms20524 KiB
#include "sorting.h"
#include <bits/stdc++.h>
using namespace std;
//let K_i = n-number of cycles at step i
//f(i) = max(i,K_i) is non decreasing
const int MAXN = 2e5+1;
bool vis[MAXN];
int p[MAXN],q[MAXN];
void change(int i,int j){
int a = p[i];
int b = p[j];
q[a] = j;
q[b] = i;
swap(p[i],p[j]);
}
int findSwapPairs(int n, int S[], int M, int X[], int Y[], int P[], int Q[]) {
vector<int>s(n);
int idx = 0;
bool ok = 1;
for(int i=0;i<n;i++)if(S[i] != i)ok = 0;
if(ok)return 0;
for(int i=0;i<n;i++)s[i] = S[i];
int l = 0,r = M-1;
while(r>=l){
int mid = (l+r)/2;
for(int i=0;i<n;i++)S[i] = s[i];
for(int i=0;i<=mid;i++)swap(S[X[i]],S[Y[i]]);
int cost = n;
for(int j=0;j<n;j++)vis[j] = 0;
for(int j=0;j<n;j++){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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...