Submission #434684

#TimeUsernameProblemLanguageResultExecution timeMemory
434684SupersonicGondola (IOI14_gondola)C++14
55 / 100
25 ms2252 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int n;bool u[250001]; int o(int a,int b){return (a+b)<=n?(a+b):(a+b)-n;} int valid(int an, int inputSeq[]){ n=an;int g=-1; for(int i=0;i<n;i++){if(inputSeq[i]<=n)g=i;if(u[inputSeq[i]])return 0;u[inputSeq[i]]=1;} if(g==-1)return 1; for(int i=g;i<n;i++)if(inputSeq[i]<=n&&inputSeq[i]!=o(inputSeq[g],i-g))return 0; for(int i=0;i<g;i++)if(inputSeq[i]<=n&&inputSeq[i]!=o(inputSeq[g],n-g+i))return 0; return 1; } //---------------------- int replacement(int an, int gondolaSeq[], int replacementSeq[]){ n=an;vector<pair<int,int>> g; int e=-1; for(int i=0;i<n;i++)if(gondolaSeq[i]<=n){e=i;break;} if(e==-1){ for(int i=0;i<n;i++)g.push_back({gondolaSeq[i],i+1}); } else{ for(int i=e;i<n;i++)g.push_back({gondolaSeq[i],o(gondolaSeq[e],i-e)}); for(int i=0;i<e;i++)g.push_back({gondolaSeq[i],o(gondolaSeq[e],n-e+i)}); } sort(g.begin(),g.end()); int c=n+1,r=0; for(auto i:g){ if(i.first==i.second)continue; //cerr<<i.first<<':'<<i.second<<endl; replacementSeq[r]=i.second;r++; for(;c<i.first;c++){ replacementSeq[r]=c;r++; }c++; } //for(int i=0;i<r;i++)cerr<<replacementSeq[i]<<' ';cerr<<endl; return r; } //---------------------- int countReplacement(int an, int inputSeq[]){ n=an; 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...