제출 #563093

#제출 시각아이디문제언어결과실행 시간메모리
563093shahriarkhan곤돌라 (IOI14_gondola)C++14
55 / 100
38 ms4584 KiB
#include "gondola.h" #include<bits/stdc++.h> using namespace std ; int valid(int n, int inputSeq[]) { int idx = -1 , cur = 0 ; map<int,int> vis ; for(int i = 0 ; i < n ; ++i) { if(vis[inputSeq[i]]) return 0 ; vis[inputSeq[i]] = 1 ; } for(int i = 0 ; i < n ; ++i) { if(inputSeq[i]<=n) { idx = i ; cur = inputSeq[i] - 1 ; break ; } } if(idx<0) return 1 ; for(int i = idx ; i < n ; ++i) { if((inputSeq[i]<=n) && (inputSeq[i]!=(cur+1))) return 0 ; cur = (cur+1)%n ; } return 1 ; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { vector<pair<int,int> > v ; vector<int> ans ; int cur = 0 , idx = 0 ; for(int i = 0 ; i < n ; ++i) { if(gondolaSeq[i]<=n) { idx = i ; cur = gondolaSeq[i] - 1 ; break ; } } for(int i = idx ; i < n ; ++i) { if(gondolaSeq[i]>n) { v.push_back({gondolaSeq[i],cur+1}) ; } cur = (cur+1)%n ; } for(int i = 0 ; i < idx ; ++i) { if(gondolaSeq[i]>n) { v.push_back({gondolaSeq[i],cur+1}) ; } cur = (cur+1)%n ; } sort(v.begin(),v.end()) ; cur = n ; for(pair<int,int> p : v) { ans.push_back(p.second) , ++cur ; while(cur<p.first) { ans.push_back(cur) ; ++cur ; } } int siz = ans.size() ; for(int i = 0 ; i < siz ; ++i) { replacementSeq[i] = ans[i] ; } return siz ; } 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...