Submission #791983

#TimeUsernameProblemLanguageResultExecution timeMemory
791983caganyanmazGondola (IOI14_gondola)C++17
55 / 100
34 ms4668 KiB
#include "gondola.h" #define pb push_back #define mp(x...) array<int,2>({x}) #include <bits/stdc++.h> using namespace std; int n; int *v; int fix(int i) { int res = i % n; if (res < 0) res += n; return res; } int right(int i) { return fix(i+1); } bool unique() { set<int> numbers; for (int i = 0; i < n; i++) { if (numbers.find(v[i]) != numbers.end()) return 0; numbers.insert(v[i]); } return 1; } int find_mi() { int mi = 0; for (int i = 1; i < n; i++) if (v[i] < v[mi]) mi = i; return mi; } int valid(int nn, int vv[]) { v = vv; n = nn; if (!unique()) return 0; int mi = find_mi(); if (v[mi] > n) return 1; int si = fix(mi - v[mi] + 1); if (v[si] != 1 && v[si] <= n) return 0; for (int j = right(si), i = 1; j != si; j=right(j)) if (v[j] != ++i && v[j] <= n) return 0; return 1; } //---------------------- int replacement(int nn, int vv[], int rr[]) { n = nn; v = vv; int mi = find_mi(); vector<array<int, 2>> p; int si = fix(mi - v[mi] + 1); if (v[si] > n) p.pb(mp(v[si], 1)); for (int j = right(si), i = 2; j != si; j=right(j), i++) if (v[j] > n) p.pb(mp(v[j], i)); sort(p.begin(), p.end()); int li = n; for (auto [val, i] : p) { rr[(li++)-n] = i; while (li != val) {rr[li-n] = li; li++;} } return li - n; } //---------------------- int countReplacement(int n, int inputSeq[]) { return 0; }
#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...