This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |