Submission #430850

#TimeUsernameProblemLanguageResultExecution timeMemory
430850Rouge_HugoGondola (IOI14_gondola)C++14
25 / 100
11 ms1740 KiB
#include<bits/stdc++.h> #define ll long long #define fi first #define se second #define pb push_back #include "gondola.h" using namespace std; const int N=100090; int vis[250090],r[N],yes[N],a[N],don[N]; int mn=1e9,mx=0; int valid(int n, int A[]) { int w=0; for(int i=0; i<n; i++) a[i]=A[i]; for(int i=0; i<n; i++) yes[a[i]]=i; for(int i=0; i<n; i++) { if(vis[a[i]]) return 0; vis[a[i]]=1; mn=min(mn,a[i]); mx=max(mx,a[i]); if(mn==a[i]) w=i; } if(mn>=n) return 1; int x=mn; for(int i=w+1; i<n; i++) { x++; if(a[i]>n) { a[i]=x; continue; } if(a[i]!=x) return 0; } x=a[n-1]; for(int i=0; i<w; i++) { x++; if(a[i]>n) { a[i]=x; continue; } if(a[i]!=x) return 0; } return 1; } int replacement(int n, int a[], int r[]) { memset(yes,-1,sizeof yes); int w=0; for(int i=0; i<n; i++) yes[a[i]]=i; for(int i=0; i<n; i++) { mn=min(mn,a[i]); mx=max(mx,a[i]); if(mn==a[i]) w=i; } int x=mn; if(w>-1){ for(int i=w+1; i<n; i++) { x++; x%=n; if(x==0) x=1; a[i]=x; } for(int i=0; i<w; i++) { x++; x%=n; if(x==0) x=1; a[i]=x; } } int u=0; if(mn>n) { for(int i=0; i<n; i++) { yes[a[i]]=i+1; } for(int i=0; i<n; i++) a[i]=i+1; } int last=0; for(int i=n+1; i<=mx; i++) { if(yes[i]==-1) { while(don[last]) last++; r[u]=a[last]; u++; a[last]=i; continue; } r[u]=a[yes[i]]; don[yes[i]]=1; u++; } return u; } int countReplacement(int n, int inputSeq[]) { return -3; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...