Submission #166744

#TimeUsernameProblemLanguageResultExecution timeMemory
166744alanhpereiraGondola (IOI14_gondola)C++11
20 / 100
15 ms1656 KiB
#include "gondola.h"
#define MAX 250050

int used[MAX];

int valid(int n, int inputSeq[]) {
	for (int i = 0; i < MAX; i++)
		used[i] = 0;
	int basePos = -1, base = -1;
	for (int i = 0; i < n; i++) {
		if (inputSeq[i] <= n) {
			if (basePos == -1) {
				basePos = i;
				base = inputSeq[i];
			}
			else {
				if (inputSeq[i] != (i - basePos + base - 1) % n + 1)
					return 0;
			}
		}
		else {
			if (used[inputSeq[i]]) return 0;
			used[inputSeq[i]] = 1;
		}
	}
	return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
	for (int i = 0; i < MAX; i++)
		used[i] = -1;
	int lastRep = 0;
	int ans = 0;
	for (int i = 1; i < n; i++) {
		used[gondolaSeq[i]] = i;
		if (gondolaSeq[i] > gondolaSeq[lastRep]) lastRep = i;
	}
	for (int i = n + 1; i <= gondolaSeq[lastRep]; i++) {
		if (used[i] == -1) {
			replacementSeq[ans++] = lastRep;
		}
		else
			replacementSeq[used[i]] = lastRep;
	}
	return ans;
}

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

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