Submission #1247782

#TimeUsernameProblemLanguageResultExecution timeMemory
1247782kl0989eSorting (IOI15_sorting)C++20
16 / 100
1 ms328 KiB
#include "sorting.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pi pair<int, int> #define pl pair<ll, ll> #define vi vector<int> #define vl vector<ll> #define fi first #define se second #define pb push_back #define all(x) (x).begin(),(x).end() bool check(int n, int s[], int r, int x[], int y[], int p[], int q[]) { for (int i=0; i<r; i++) { swap(s[x[i]],s[y[i]]); swap(s[p[i]],s[q[i]]); } bool ok=1; for (int i=0; i<n; i++) { ok&=(s[i]==i); } return ok; } int findSwapPairs(int n, int s[], int m, int x[], int y[], int p[], int q[]) { if (n==1) { return 0; } int ss[n]; for (int i=0; i<n; i++) { ss[i]=s[i]; } int ind=0; for (int i=0; i<n-1; i++) { swap(s[x[ind]],s[y[ind]]); p[ind]=i; q[ind]=find(s,s+n,i)-s; if (i==1) { p[ind]=0; } swap(s[p[ind]],s[q[ind]]); if (p[ind]!=q[ind] || i==0) { ind++; } else { swap(s[x[ind]],s[y[ind]]); } } if (s[0]!=0) { p[ind]=0; q[ind]=0; ind++; } assert(check(n,ss,ind,x,y,p,q)); return ind; }
#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...