Submission #385831

#TimeUsernameProblemLanguageResultExecution timeMemory
385831ParsaAlizadehGondola (IOI14_gondola)C++17
55 / 100
24 ms2320 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; int const N = 2.5e5 + 10; int valid(int n, int inputSeq[]) { int st = -1; vector<bool> mark(N, false); for (int i = 0; i < n; i++) { if (inputSeq[i] <= n) { if (st == -1) st = (inputSeq[i] - 1) - i + n; else if (inputSeq[i] - 1 != (st + i) % n) return 0; } if (mark[inputSeq[i]]) return 0; mark[inputSeq[i]] = true; } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int st = 0, l = 0; for (int i = 0; i < n; i++) { if (gondolaSeq[i] <= n) st = (gondolaSeq[i] - 1) - i + n; l = max(l, gondolaSeq[i]); } vector<int> ind(l + 1, -1), tmp(n, 0); for (int i = 0; i < n; i++) { ind[gondolaSeq[i]] = i; tmp[i] = 1 + (st + i) % n; } int ptr = 0; for (int i = n + 1; i <= l; i++) { while (ptr < n && tmp[ptr] == gondolaSeq[ptr]) ptr++; int j = (ind[i] != -1 ? ind[i] : ptr); replacementSeq[i - n - 1] = tmp[j]; tmp[j] = i; } return l - n; } //---------------------- 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...