Submission #106690

# Submission time Handle Problem Language Result Execution time Memory
106690 2019-04-19T17:09:52 Z tincamatei Gondola (IOI14_gondola) C++14
25 / 100
27 ms 1152 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;
		
		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 2 ms 768 KB Output is correct
3 Correct 2 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 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 9 ms 896 KB Output is correct
7 Correct 17 ms 1024 KB Output is correct
8 Correct 20 ms 1024 KB Output is correct
9 Correct 6 ms 896 KB Output is correct
10 Correct 18 ms 1104 KB Output is correct
# 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
6 Correct 10 ms 896 KB Output is correct
7 Correct 21 ms 1024 KB Output is correct
8 Correct 21 ms 1024 KB Output is correct
9 Correct 9 ms 896 KB Output is correct
10 Correct 27 ms 1068 KB Output is correct
11 Correct 3 ms 768 KB Output is correct
12 Correct 3 ms 768 KB Output is correct
13 Correct 13 ms 896 KB Output is correct
14 Correct 3 ms 768 KB Output is correct
15 Correct 20 ms 1152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 256 KB Output is correct
2 Correct 3 ms 256 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 3 ms 256 KB Output is correct
5 Correct 3 ms 256 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Incorrect 2 ms 384 KB Integer 0 violates the range [1, 4627]
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 384 KB Output is correct
2 Correct 3 ms 384 KB Output is correct
3 Correct 2 ms 384 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 256 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Incorrect 3 ms 384 KB Integer 0 violates the range [1, 4627]
9 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 4 ms 428 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 3 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -