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 "gondola.h"
#include <stdio.h>
#include <string.h>
#define A 250000
int max(int a, int b) { return a > b ? a : b; }
int valid(int n, int aa[]) {
static char used[A + 1];
int i, j;
for (i = 0; i < n; i++) {
if (used[aa[i]])
return 0;
used[aa[i]] = 1;
}
for (i = 0; i < n; i++)
if (aa[i] <= n) {
for (j = 0; j < n; j++)
if (aa[(i + j) % n] <= n && aa[(i + j) % n] != (aa[i] - 1 + j) % n + 1)
return 0;
return 1;
}
return 1;
}
int replacement(int n, int aa[], int bb[]) {
static int ii[A + 1];
int i, a, a_, b, offset;
memset(ii, -1, (A + 1) * sizeof *ii);
offset = 0;
for (i = 0, a_ = -1; i < n; i++) {
ii[aa[i]] = i, a_ = max(a_, aa[i]);
if (aa[i] <= n)
offset = (aa[i] - 1 - i + n) % n;
}
for (a = n + 1, b = (ii[a_] + offset) % n + 1; a <= a_; a++)
if (a < a_ && ii[a] != -1)
bb[a - n - 1] = (ii[a] + offset) % n + 1;
else
bb[a - n - 1] = b, b = a;
return a_ - n;
}
int countReplacement(int n, int aa[]) {
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... |