Submission #800974

#TimeUsernameProblemLanguageResultExecution timeMemory
800974jlallas384Gondola (IOI14_gondola)C++17
55 / 100
29 ms4592 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; int valid(int n, int inputSeq[]){ set<int> used; int idx = 0; for(int i = 0; i < n; i++){ if(used.count(inputSeq[i])) return 0; used.insert(inputSeq[i]); if(inputSeq[i] <= n){ idx = i; } } int nd = inputSeq[idx]; for(int i = 0; i < n; i++){ int j = (idx + i) % n; if(inputSeq[j] <= n && inputSeq[j] != nd) return 0; nd++; if(nd > n) nd = 1; } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]){ int idx = -1; for(int i = 0; i < n; i++){ if(gondolaSeq[i] <= n){ idx = i; break; } } vector<int> st(n); int nd = (idx == -1 ? 1 : gondolaSeq[idx]); if(idx == -1) idx = 0; for(int i = 0; i < n; i++){ st[(idx + i) % n] = nd++; if(nd > n) nd = 1; } vector<pair<int,int>> srt; for(int i = 0; i < n; i++){ if(gondolaSeq[i] > n) srt.emplace_back(gondolaSeq[i], i); } sort(srt.begin(), srt.end()); int l = 0; int c = n + 1; for(auto [v, i]: srt){ replacementSeq[l++] = st[i]; while(c < v){ replacementSeq[l++] = c++; } c++; } return l; } //---------------------- 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...