제출 #204566

#제출 시각아이디문제언어결과실행 시간메모리
204566a_player곤돌라 (IOI14_gondola)C++14
55 / 100
27 ms2420 KiB
#include <bits/stdc++.h> #include "gondola.h" #define f first #define s second #define mp make_pair #define rep replacementSeq using namespace std; const int MAXN = 250e3+5; bitset<MAXN> v; int valid(int n, int inputSeq[]) { int cont=0; for(int i=0;i<n;i++)if(inputSeq[i]>n)cont++; int mas=*max_element(inputSeq,inputSeq+n); if(mas!=n+cont)return 0; for(int i=0;i<n;i++){ if(v[inputSeq[i]])return 0; v[inputSeq[i]]=1; } int mini=min_element(inputSeq,inputSeq+n)-inputSeq; int ans=1; if(inputSeq[mini]>n)return 1; int i=(mini-inputSeq[mini]+1+n)%n; for(int j=0;j<n-1;j++){ if(inputSeq[(i+j)%n]>n||inputSeq[(i+j+1)%n]>n)continue; ans*=(inputSeq[(i+j)%n]+1==inputSeq[(i+j+1)%n]); } return ans; } //---------------------- vector<pair<int,int> > a; int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int ind=-1; for(int i=0;i<n;i++)if(gondolaSeq[i]<=n)ind=i; if(ind==-1){ for(int j=0;j<n;j++)a.push_back(mp(gondolaSeq[j],j+1)); }else{ ind=(ind-gondolaSeq[ind]+1+n)%n; for(int j=0;j<n;j++)a.push_back(mp(gondolaSeq[(ind+j)%n],j+1)); } sort(a.begin(),a.end()); int id=0; int k=n; for(pair<int,int> x:a){ if(x.f==x.s)continue; rep[id++]=x.s; for(k+=1;k<x.f;k++)rep[id++]=k; } return id; } //---------------------- 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...