Submission #106691

# Submission time Handle Problem Language Result Execution time Memory
106691 2019-04-19T17:13:22 Z tincamatei Gondola (IOI14_gondola) C++14
55 / 100
29 ms 2408 KB
#include "gondola.h"
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 100000;

int valid(int n, int inputSeq[]) {
	int fixed = -1;

	vector<int> aux(MAX_N, 0);

	for(int i = 0; i < n; ++i)
		if(inputSeq[i] <= n)
			fixed = i;
	
	for(int i = 0; i < n; ++i)
		aux[i] = inputSeq[i];
	
	sort(aux.begin(), aux.begin() + n);
	for(int i = 0; i < n - 1; ++i) // All gondolas must be distinct
		if(aux[i] == aux[i + 1])
			return false;

	if(fixed == -1) // All gondolas have been replaced
		return true;
	
	for(int i = 0; i < n; ++i) {
		int expected = (inputSeq[fixed] + i - 1) % n + 1;
		int expectedPos = (fixed + i) % n;
		if(!(inputSeq[expectedPos] == expected || inputSeq[expectedPos] > n))
			return false;
	}
	return true;
}

int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
	int top = 0, lastVal = n;
	int fixed = -1;

	vector<pair<int, int> > aux;

	for(int i = 0; i < n; ++i) {
		if(gondolaSeq[i] > n)
			aux.push_back(make_pair(gondolaSeq[i], i));
		else
			fixed = i;
	}

	sort(aux.begin(), aux.end());

	for(auto it: aux) {
		int expectedVal;
		if(fixed != -1)
			expectedVal = (gondolaSeq[fixed] + it.second - fixed + 2 * n - 1) % n + 1;
		else
			expectedVal = it.second + 1;
		
		replacementSeq[top++] = expectedVal;
		++lastVal;
		
		while(lastVal < it.first) {
			replacementSeq[top++] = lastVal;
			lastVal++;
		}
	}

	return top;
}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 768 KB Output is correct
2 Correct 3 ms 768 KB Output is correct
3 Correct 3 ms 768 KB Output is correct
4 Correct 2 ms 768 KB Output is correct
5 Correct 3 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 768 KB Output is correct
2 Correct 2 ms 764 KB Output is correct
3 Correct 2 ms 768 KB Output is correct
4 Correct 3 ms 768 KB Output is correct
5 Correct 2 ms 768 KB Output is correct
6 Correct 9 ms 896 KB Output is correct
7 Correct 22 ms 1024 KB Output is correct
8 Correct 17 ms 1024 KB Output is correct
9 Correct 8 ms 768 KB Output is correct
10 Correct 21 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 768 KB Output is correct
2 Correct 2 ms 768 KB Output is correct
3 Correct 3 ms 768 KB Output is correct
4 Correct 3 ms 768 KB Output is correct
5 Correct 3 ms 768 KB Output is correct
6 Correct 11 ms 896 KB Output is correct
7 Correct 21 ms 1100 KB Output is correct
8 Correct 13 ms 1024 KB Output is correct
9 Correct 8 ms 896 KB Output is correct
10 Correct 19 ms 1024 KB Output is correct
11 Correct 2 ms 768 KB Output is correct
12 Correct 3 ms 796 KB Output is correct
13 Correct 11 ms 896 KB Output is correct
14 Correct 4 ms 768 KB Output is correct
15 Correct 21 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 384 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 3 ms 256 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 3 ms 384 KB Output is correct
9 Correct 3 ms 384 KB Output is correct
10 Correct 3 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 512 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 4 ms 256 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 3 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct
11 Correct 13 ms 1020 KB Output is correct
12 Correct 17 ms 1280 KB Output is correct
13 Correct 29 ms 1544 KB Output is correct
14 Correct 14 ms 1024 KB Output is correct
15 Correct 26 ms 2408 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -