Submission #16356

#TimeUsernameProblemLanguageResultExecution timeMemory
16356atomzenoGondola (IOI14_gondola)C++98
25 / 100
17 ms7332 KiB
#include "gondola.h" int d[250001],check[250001]; int puting[250001],l,indi[250001],indian[250001],ind; int valid(int n, int inputSeq[]){ int i,cnt=0,ind; for(i=0;i<=250000;i++){ check[i]=0; } for(i=0;i<n;i++){ if(inputSeq[i]<=n){ cnt=1; ind=(inputSeq[i]-1-i)+n; ind%=n; break; } } for(i=0;i<n;i++){ check[inputSeq[i]]++; if(check[inputSeq[i]]>=2){return 0;} } if(cnt==0){return 1;} for(i=0;i<n;i++){ d[(ind+i)%n]=inputSeq[i]; } for(i=0;i<n;i++){ if(d[i]<=n&&d[i]!=(i+1)){ return 0; } } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]){ l=0; int o=-1,i; ind=0; for(i=0;i<n;i++){ if(gondolaSeq[i]<=n){ ind=(gondolaSeq[i]-1-i)+n; ind%=n; break; } } for(i=0;i<n;i++){ d[(ind+i)%n]=gondolaSeq[i]; } for(i=0;i<=250000;i++){ check[i]=0; } for(i=0;i<n;i++){ check[d[i]]++; o=o>d[i]?o:d[i]; indi[d[i]]=1; indian[d[i]]=i; } for(i=o;i>n;i--){ if(indi[i]==0){continue;} if(indi[i-1]!=0){ puting[l]=indian[i]+1; l++; } if(indi[i-1]==0){ puting[l]=i-1; indi[i-1]=1; indian[i-1]=indian[i]; l++; } } for(i=l-1;i>=0;i--){ replacementSeq[i]=puting[l-i-1]; } return l; } //---------------------- 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...