Submission #1145493

#TimeUsernameProblemLanguageResultExecution timeMemory
1145493x93bd0Gondola (IOI14_gondola)C++20
45 / 100
11 ms2376 KiB
#include "gondola.h" #include <algorithm> #include <stdio.h> int valid(int n, int inputSeq[]) { int x; for (x = 0; x < n; x++) { if (inputSeq[x] <= n) break; } if (x == n) return 1; for (int i = 0; i < n; i++) { int idx = i < inputSeq[x] ? (x + n - (inputSeq[x] - (i + 1))) : x + ((i + 1) - inputSeq[x]); int v = inputSeq[idx % n]; if (v > n || v == (i + 1)) continue; return 0; } return 1; } //---------------------- int replacement(int n, int gs[], int rs[]) { int x = 0; for (; x < n; x++) { if (gs[x] <= n) break; } if (x == n) { std::pair<int, int> d[n]; for (int x = 0; x < n; x++) d[x].first = gs[x], d[x].second = x; std::sort(d, d + n); int l = 0, m = n + 1; for (uint x = 0; x < n; x++) { rs[l++] = d[x].second + 1; m++; while ((m - 1) != d[x].first) rs[l++] = (m++) - 1; } return l; } int a[n]; x = (x + (n - gs[x] + 1)) % n; for (uint i = 0; i < n; i++) a[i] = gs[(x + i) % n]; std::pair<uint, uint> d[n]; for (uint x = 0; x < n; x++) d[x].first = a[x], d[x].second = x; std::sort(d, d + n); uint l = 0, v = n + 1; for (uint x = 0; x < n; x++) { if (d[x].first <= n) continue; rs[l++] = d[x].second + 1; v++; while ((v - 1) != d[x].first) rs[l++] = (v++) - 1; } 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...