Submission #589282

#TimeUsernameProblemLanguageResultExecution timeMemory
589282promaGondola (IOI14_gondola)C++17
55 / 100
30 ms2384 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int valid(int n, int inputSeq[]) { int flag = 1; for (int i = 1; i < n; i ++) { if (inputSeq[i] != inputSeq[i-1] + 1) { if (inputSeq[i] != 1) flag = 0; } } return flag; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { vector <int> a(n); vector <pair <int, int>> p; int flag = 0; for (int i = 0; i < n; i ++) { if (gondolaSeq[i] <= n) { a[i] = gondolaSeq[i]; for (int j = i + 1; j < n; j ++) { a[j] = (a[j-1] + 1) % (n + 1); a[j] = max(1, a[j]); } if (i) { a[0] = (a[n-1] + 1) % (n + 1); a[0] = max(1, a[0]); } for (int j = 1; j < i; j ++) { a[j] = (a[j-1] + 1) % (n + 1); a[j] = max(1, a[j]); } flag = 1; break; } } if (!flag) { for (int i = 0; i < n; i ++) { a[i] = i + 1; } } for (int i = 0; i < n; i ++) { if (gondolaSeq[i] > n) p.push_back({gondolaSeq[i], a[i]}); } sort(p.begin(), p.end()); int last = n + 1, pos = 0; for (auto i: p) { replacementSeq[pos ++] = i.second; while (last < i.first) { replacementSeq[pos ++] = last ++; } last = i.first + 1; } return pos; } //---------------------- 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...