제출 #775431

#제출 시각아이디문제언어결과실행 시간메모리
775431alvingogo곤돌라 (IOI14_gondola)C++14
55 / 100
30 ms4572 KiB
#include "gondola.h" #include <bits/stdc++.h> #define fs first #define sc second using namespace std; int valid(int n, int inputSeq[]) { set<int> s; int x=-1; for(int i=0;i<n;i++){ if(inputSeq[i]<=n){ x=i; } if(s.find(inputSeq[i])!=s.end()){ return 0; } s.insert(inputSeq[i]); } if(x==-1){ return 1; } for(int i=x,cnt=0;cnt<n;i=(i+1)%n,cnt++){ if(inputSeq[i]<=n && (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; } } vector<pair<int,int> > g; if(x==-1){ x=0; for(int i=0;i<n;i++){ g.push_back({gondolaSeq[i],i+1}); } } else{ 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; }
#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...