Submission #780920

#TimeUsernameProblemLanguageResultExecution timeMemory
780920vjudge1곤돌라 (IOI14_gondola)C++17
55 / 100
15 ms2384 KiB
#include <iostream> #include <algorithm> #include <vector> #include "gondola.h" #define MAX 250000 using namespace std; int mark[MAX + 10]; vector <pair <int, int>> v; int valid(int n, int inputSeq[]) { int posOrig = -1; for (int i = 0; i < n; i++) { if (mark[inputSeq[i]] == 1) return 0; if (inputSeq[i] <= n) posOrig = i; mark[inputSeq[i]] = 1; } if (posOrig == -1) return 1; int pos = posOrig; for (int i = 1; i <= n; i++) { if (inputSeq[pos] <= n && (inputSeq[pos] - inputSeq[posOrig] + n) % n != (pos - posOrig + n) % n) return 0; pos = (pos + 1) % n; } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int posOrig = -1; for (int i = 0; i < n; i++) if (gondolaSeq[i] <= n) posOrig = i; if (posOrig == -1) for (int i = 0; i < n; i++) v.push_back({gondolaSeq[i], i + 1}); else { int pos = posOrig; int g = gondolaSeq[posOrig]; for (int i = 1; i <= n; i++) { if (gondolaSeq[pos] > n) v.push_back({gondolaSeq[pos], g}); pos = (pos + 1) % n; if (g == n - 1) g = n; else g = (g + 1) % n; } } sort(v.begin(), v.end()); int l = 0, nn = n + 1; for (auto it : v) { replacementSeq[l] = it.second; l++; nn++; while (nn <= it.first) { replacementSeq[l] = nn - 1; l++; nn++; } } return l; } int countReplacement(int n, int inputSeq[]) { return -1; }
#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...