답안 #127880

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
127880 2019-07-10T07:52:28 Z zozder 곤돌라 (IOI14_gondola) C++14
25 / 100
15 ms 1668 KB
#include "gondola.h"
#include <iostream>
using namespace std;
 
int valid(int n, int inputSeq[])
{
	int minn=10000,minl=n;
	int tag[250001];
	for(int i=1;i<=250000;i++)tag[i]=0;
	for(int i=0;i<n;i++)if(inputSeq[i]<minn&&0<inputSeq[i]&&inputSeq[i]<=n)
	{
		minn=inputSeq[i];
		minl=i;
  	}
	int t=1,m=n;
	while(m>0)
  	{
  		if(minl>=n)minl=0;
  		
  		if((inputSeq[minl]!=minn&&0<inputSeq[minl]&&inputSeq[minl]<=n)||tag[inputSeq[minl]]==1)t=0;
  		tag[inputSeq[minl]]=1;
//  		cout<<minn<<","<<minl<<","<<inputSeq[minl]<<","<<tag[inputSeq[minl]]<<endl;
  		m--;
		minl++;
  		minn++;
	}
	return t;
}
 
int a[250001],b[250001],c[150001];
 
int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
	int minl=10000,minn=n;
	for(int i=1;i<=n;i++)a[i]=gondolaSeq[i-1];
	int loca,num;
	for(int i=1;i<=n;i++)if(0<a[i]&&a[i]<=n)
	{
		loca=i;
		num=a[i];
		i=n+1;
	}
	int m=n;int max=0;
	while(m>0)
	{
		if(loca>n)loca=1;
		if(num>n)num=1;
		b[num]=a[loca];
		if(max<b[num])max=b[num];
		loca++;
		num++;
		m--;
	}
//	for(int i=1;i<=n;i++)cout<<b[i]<<" ";cout<<endl;
	for(int i=1;i<=n;i++)if(b[i]==i)a[i]=0;else a[i]=i;
	for(int i=1;i<=n;i++)if(a[i]!=0)c[b[i]-n]=a[i];
//	for(int i=1;i<=n;i++)cout<<a[i]<<" ";cout<<endl;
	int len=max-n;
//	for(int i=1;i<=len;i++)cout<<c[i]<<" ";cout<<endl;
	int x=0,last=0;
	for(int i=len;i>0;i--)if(c[i]!=0)
	{
//		cout<<";"<<i<<","<<x<<endl;
		int t;
		t=x;
		x=c[i];
		c[i]=t;
		if(i>last)last=i;
	}
	c[0]=x;
	
	for(int i=1;i<=len;i++)if(c[i]==0)c[i]=i+n;
//	for(int i=0;i<last;i++)cout<<c[i]<<" ";cout<<endl;
	for(int i=0;i<last;i++)replacementSeq[i]=c[i];
	
	return last;
}
 
int countReplacement(int n, int inputSeq[])
{
  return -3;
}

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:34:6: warning: unused variable 'minl' [-Wunused-variable]
  int minl=10000,minn=n;
      ^~~~
gondola.cpp:34:17: warning: unused variable 'minn' [-Wunused-variable]
  int minl=10000,minn=n;
                 ^~~~
gondola.cpp:36:11: warning: 'num' may be used uninitialized in this function [-Wmaybe-uninitialized]
  int loca,num;
           ^~~
gondola.cpp:36:6: warning: 'loca' may be used uninitialized in this function [-Wmaybe-uninitialized]
  int loca,num;
      ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1272 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 4 ms 1272 KB Output is correct
4 Correct 3 ms 1272 KB Output is correct
5 Correct 3 ms 1272 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1276 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 3 ms 1272 KB Output is correct
4 Correct 3 ms 1272 KB Output is correct
5 Correct 3 ms 1272 KB Output is correct
6 Correct 7 ms 1528 KB Output is correct
7 Correct 14 ms 1668 KB Output is correct
8 Correct 11 ms 1656 KB Output is correct
9 Correct 6 ms 1376 KB Output is correct
10 Correct 13 ms 1648 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1272 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 3 ms 1272 KB Output is correct
4 Correct 3 ms 1272 KB Output is correct
5 Correct 3 ms 1272 KB Output is correct
6 Correct 7 ms 1400 KB Output is correct
7 Correct 15 ms 1656 KB Output is correct
8 Correct 11 ms 1656 KB Output is correct
9 Correct 6 ms 1400 KB Output is correct
10 Correct 13 ms 1660 KB Output is correct
11 Correct 3 ms 1272 KB Output is correct
12 Correct 3 ms 1272 KB Output is correct
13 Correct 8 ms 1400 KB Output is correct
14 Correct 3 ms 1272 KB Output is correct
15 Correct 15 ms 1656 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 380 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Incorrect 2 ms 376 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Incorrect 2 ms 376 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 256 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -