제출 #376729

#제출 시각아이디문제언어결과실행 시간메모리
376729lakshith_곤돌라 (IOI14_gondola)C++14
20 / 100
15 ms748 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; bool b[2500010]; int checkOnce(int n,int vec[]){ for(int i=0;i<n;i++) if(b[vec[i]])return 0; else b[vec[i]]=true; return 1; } int valid(int n, int vec[]) { if(!checkOnce(n,vec))return 0; int MIN=INT_MAX,minI=0; for(int i=0;i<n;i++)if(MIN>vec[i])MIN=vec[i],minI=i; int p = MIN; int pos = minI; if(MIN>n)return 1; for(int k=0;k<n;k++){ if(vec[pos]<=n && vec[pos]!=p)return 0; pos++; p++; pos%=n; } return 1; } int replacement(int n, int a[], int r[]) { if(!valid(n,a))return 0; int MIN=INT_MAX,minI=0; for(int i=0;i<n;i++)if(MIN>a[i])MIN=a[i],minI=i; int pos = minI; pair<int,int> arr[n]; for(int i=0;i<n;i++)arr[i] = {a[i],i+1}; if(MIN<=n){ for(int k=0;k<n;k++){ arr[pos] = {a[pos],k+1}; pos++,pos%=n; } } sort(arr,arr+n); int i; for(i=0;i<n;i++)if(arr[i].first>n)break; vector<int> ans; int prev = n+1; for(;i<n;i++){ ans.push_back(arr[i].second); while(prev!=arr[i].first)ans.push_back(prev++); } int rr[ans.size()]; for(size_t j=0;j<ans.size();j++)rr[j] = ans[j]; //for(int x:ans)cout << x << " "; //cout << "\n"; r = rr; return ans.size(); } //---------------------- 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...