Submission #218861

# Submission time Handle Problem Language Result Execution time Memory
218861 2020-04-02T21:50:30 Z Kenzo_1114 Gondola (IOI14_gondola) C++17
25 / 100
18 ms 1568 KB
#include "gondola.h"
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100010;

int correct[MAXN], pos[3 * MAXN], ans[3 * MAXN];
bool marc1[3 * MAXN];

void calc(int n, int seq[])
{
	int id = 0;
	for(int i = 0; i < n; i++)
		if(seq[i] <= n)
		{	id = i; break;	}

	correct[id] = seq[id];
	for(int i = id + 1; i < n; i++)
	{	
		correct[i] = correct[i - 1] + 1;
		if(correct[i] > n)	correct[i] = 1;
	}

	for(int i = id - 1; i >= 0; i--)
	{
		correct[i] = correct[i + 1] - 1;
		if(correct[i] < 1)	correct[i] = n;
	}
}

int valid(int n, int seq[])
{
	calc(n, seq);

	for(int i = 0; i < n; i++)
	{
		if(seq[i] <= n && correct[i] != seq[i])	return 0;
		if(seq[i] > n && marc1[seq[i]])	return 0;
		marc1[seq[i]] = true;
	}

	return 1;
}

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
	calc(n, gondolaSeq);

	for(int i = 0; i < 3 * MAXN; i++)	pos[i] = -1;

	int mx = n;
	for(int i = 0; i < n; i++)
		if(gondolaSeq[i] > n)
			pos[gondolaSeq[i]] = i, mx = gondolaSeq[i];

	for(int i = mx - 1; i > n; i--)
		if(pos[i] == -1)	
			pos[i] = pos[i + 1];

	int l = 0;	
	for(int i = n + 1; i <= mx; i++)
	{
		replacementSeq[l] = correct[pos[i]];
		correct[pos[i]] = i;
		l++;
	}
/*
	printf("l = %d\n", l);
	for(int i = 0; i < l; i++)	printf("%d ", replacementSeq[i]);
	printf("\n");
*/
	return l;
}

int countReplacement(int n, int inputSeq[])
{
	return -1;
}

/*
int N, SEQ[MAXN];

int main ()
{
	scanf("%d", &N);

	for(int i = 0; i < N; i++)	scanf("%d", &SEQ[i]);

	printf("valid = %d\n", valid(N, SEQ));

	replacement(N, SEQ, ans);
}
*/
# Verdict Execution time Memory Grader output
1 Correct 4 ms 256 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 128 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 10 ms 640 KB Output is correct
7 Correct 18 ms 1020 KB Output is correct
8 Correct 14 ms 896 KB Output is correct
9 Correct 8 ms 512 KB Output is correct
10 Correct 16 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 768 KB Output is correct
7 Correct 17 ms 1024 KB Output is correct
8 Correct 15 ms 896 KB Output is correct
9 Correct 9 ms 512 KB Output is correct
10 Correct 17 ms 1024 KB Output is correct
11 Correct 5 ms 256 KB Output is correct
12 Correct 5 ms 384 KB Output is correct
13 Correct 10 ms 768 KB Output is correct
14 Correct 5 ms 384 KB Output is correct
15 Correct 18 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1568 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 6 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 5 ms 1536 KB Output is correct
7 Incorrect 5 ms 1536 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 5 ms 1536 KB Output is correct
7 Incorrect 5 ms 1536 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 256 KB Integer -1 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 256 KB Integer -1 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Integer -1 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Integer -1 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -