# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
775425 | 2023-07-06T11:33:05 Z | alvingogo | Gondola (IOI14_gondola) | C++14 | 0 ms | 0 KB |
#include "gondola.h" #include <bits/stdc++.h> #define fs fireplacementSeqt #define sc second using namespace std; int valid(int n, int inputSeq[]) { int x=-1; for(int i=0;i<n;i++){ if(inputSeq[i]<=n){ x=i; } } if(x==-1){ return 1; } for(int i=x,cnt=0;cnt<n;i=(i+1)%n,cnt++){ if((inputSeq[i]-inputSeq[x]+n)%n!=(i-x+n)%n){ return 0; } } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int x=-1; for(int i=0;i<n;i++){ if(gondolaSeq[i]<=n){ x=i; } } if(x==-1){ x=0; } vector<pair<int,int> > g; for(int i=x,cnt=0,z=gondolaSeq[x];cnt<n;i=(i+1)%n,cnt++,z=(z+1)%n+(n*(z==n-1))){ if(gondolaSeq[i]>n){ g.push_back({gondolaSeq[i],z}); } } sort(g.begin(),g.end()); int nw=n+1,f=0; for(auto y:g){ replacementSeq[f]=y.sc; f++; nw++; for(;nw<=y.fs;f++,nw++){ replacementSeq[f]=nw-1; } } return f; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }