Submission #607733

#TimeUsernameProblemLanguageResultExecution timeMemory
607733jairRSGondola (IOI14_gondola)C++17
20 / 100
74 ms9524 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;

int prev(int in, int n)
{
	return (--in + n) % n;
}

int next(int in, int n)
{
	return ++in % n;
}

map<int, int> pos;
map<int, int> freq;

int valid(int n, int inputSeq[])
{
	for (int i = 0; i < n; i++)
	{
		pos[inputSeq[i]] = i;
		freq[inputSeq[i]]++;
	}

	vi sortedInput(inputSeq, inputSeq + n);
	sort(sortedInput.begin(), sortedInput.end());

	bool ans = true;
	int expectedMax = n;

	for (int i = 0; i < n; i++)
	{
		int cur = sortedInput[i];
		int nxt = sortedInput[next(i, n)];
		int gap = nxt - cur;

		if (gap == 1 || i == n - 1)
			ans &= (pos[nxt] == next(pos[cur], n));
		else
			expectedMax += gap;

		ans &= freq[cur] == 1;
	}

	return (ans && (expectedMax == sortedInput.back()));
}

//----------------------

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
	return -2;
}

//----------------------

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...