#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
int valid(int n, int inputSeq[])
{
set<int> seen;
for (int i = 0; i < n; ++i)
if (seen.count(inputSeq[i]))
return 0;
else
seen.insert(inputSeq[i]);
int start = -1;
for (int i = 0; i < n; ++i)
if (inputSeq[i] <= n)
{
start = i;
break;
}
if (start != -1)
{
int base = inputSeq[start];
for (int i = 0; i < n; ++i)
{
int expected = (base + i - start) % n;
if (expected <= 0)
expected += n;
if (inputSeq[i] <= n && inputSeq[i] != expected)
return 0;
}
}
int nextReplacement = n + 1;
for (int i = 0; i < n; ++i)
if (inputSeq[i] > n)
if (inputSeq[i] < nextReplacement)
return 0;
else
nextReplacement = inputSeq[i] + 1;
return 1;
}
int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
int start = -1;
for (int i = 0; i < n; i++)
{
if (gondolaSeq[i] <= n)
{
start = i;
break;
}
}
int M = 0;
for (int i = 0; i < n; ++i)
M = max(M, gondolaSeq[i]);
int totalBreaks = M - n;
if (start == -1)
start == 0;
int idx = 0, base = gondolaSeq[start];
map<int, int> brokenAt;
for (int i = 0; i < n; ++i)
{
int expected = (base + i - start) % n;
if (expected <= 0)
expected += n;
if (gondolaSeq[i] > n)
brokenAt[gondolaSeq[i]] = expected;
}
int current = -1, nextReplacement = n + 1;
for (auto &[rep, broken] : brokenAt)
{
if (current == -1)
current = broken;
while (nextReplacement < rep)
{
replacementSeq[idx++] = current;
current = nextReplacement++;
}
replacementSeq[idx++] = current;
current = rep;
nextReplacement = rep + 1;
}
while (nextReplacement <= M)
{
replacementSeq[idx++] = current;
current = nextReplacement++;
}
return idx;
}
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... |