제출 #1308289

#제출 시각아이디문제언어결과실행 시간메모리
1308289Rares곤돌라 (IOI14_gondola)C++20
20 / 100
1096 ms1352 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; /**ifstream fin ("date.in"); ofstream fout ("date.out"); #define cin fin #define cout fout**/ const int MAXN=1e6+10; const int MOD=1e9+9; int f[MAXN],f2[MAXN]; int valid (int n, int a[]){ int x=-1; for (int i=n;i>=1;--i){ a[i]=a[i-1]; } for (int i=1;i<=n;++i){ if (f2[a[i]]) return false; f2[a[i]]++; if (a[i]>n) continue; int crt=a[i]-i; if (crt<0) crt+=n; if (x==-1){ x=crt; } else{ if (x!=crt) return 0; } } return 1; } int val[MAXN]; int replacement(int n, int a[], int b[]){ int crt=-1; for (int i=n;i>=1;--i){ a[i]=a[i-1]; } for (int i=1;i<=n;++i){ if (a[i]<n){ crt=a[i]-i; if (crt<0) crt+=n; } } if (crt==-1){ while (1); } int maxx=0,pcrt=0; for (int i=1;i<=n;++i){ maxx=max (maxx,a[i]); if (a[i]>n){ pcrt=i; int p=crt+i; if (p>n) p-=n; val[a[i]]=i; a[i]=p; } } for (int i=n+1;i<=maxx;++i){ if (val[i]){ b[i-n-1]=a[val[i]]; a[val[i]]=i; } else{ b[i-n-1]=a[pcrt]; a[pcrt]=i; } } /**cout <<maxx-n<<'\n'; for (int i=0;i<maxx-n;++i){ cout <<b[i]<<' '; }**/ return maxx-n; } int countReplacement(int n, int inputSeq[]){ return 0; }
#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...