답안 #60521

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
60521 2018-07-24T09:45:22 Z hamzqq9 곤돌라 (IOI14_gondola) C++14
55 / 100
31 ms 4376 KB
#include "gondola.h"
#define st first
#define nd second
#define ii pair<int,int> 
#define pb push_back
#define sz(x) (x.size())
#include<bits/stdc++.h>
using namespace std;

int find_fixed(int n,int inputSeq[]) {

	int fixed=0;

	for(int i=0;i<n;i++) {

		if(inputSeq[i]<=n) {

			fixed=i;

			break ;

		}

	}

	return fixed;

}

int valid(int n, int inputSeq[]) {

	int fr[250001]={0};

	int fixed=find_fixed(n,inputSeq);

	int tot=2,big=0;

	int cur=inputSeq[fixed];

	for(int i=fixed;(tot-=(i==fixed));i=(i+1)%n,cur++) {

		if(cur>n) cur-=n;

		if(inputSeq[i]>n) {
		
			fr[inputSeq[i]]++;

			big++;

			continue ;
		
		}

		if(inputSeq[i]!=cur) return 0;

	}

	for(int i=n+1;i<250001;i++) {

		if(fr[i]>1) return 0; 

	}

	return 1;

}

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

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

	int fixed=find_fixed(n,gondolaSeq);

	int cur=(gondolaSeq[fixed]<=n?gondolaSeq[fixed]:1);
	int tot=2;

	vector<ii> change;

	for(int i=fixed;(tot-=(i==fixed));i=(i+1)%n,cur++) {

		if(cur>n) cur-=n;

		if(gondolaSeq[i]>n) {

			change.pb({gondolaSeq[i],cur});

		}

	}

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

	int sz=0;
	int val=n;

	for(int i=0;i<sz(change);i++) {

		auto x=change[i];

		replacementSeq[sz++]=x.nd;

		val++;

		while(val<x.st) {

			replacementSeq[sz++]=val++;

		}

	}

	return sz;

}

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

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

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:96:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<sz(change);i++) {
               ^
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1272 KB Output is correct
2 Correct 4 ms 1384 KB Output is correct
3 Correct 3 ms 1460 KB Output is correct
4 Correct 3 ms 1460 KB Output is correct
5 Correct 3 ms 1544 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1544 KB Output is correct
2 Correct 4 ms 1544 KB Output is correct
3 Correct 4 ms 1544 KB Output is correct
4 Correct 4 ms 1544 KB Output is correct
5 Correct 5 ms 1544 KB Output is correct
6 Correct 9 ms 1644 KB Output is correct
7 Correct 20 ms 1900 KB Output is correct
8 Correct 15 ms 1900 KB Output is correct
9 Correct 7 ms 1900 KB Output is correct
10 Correct 18 ms 1900 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1900 KB Output is correct
2 Correct 3 ms 1900 KB Output is correct
3 Correct 4 ms 1900 KB Output is correct
4 Correct 4 ms 1900 KB Output is correct
5 Correct 4 ms 1900 KB Output is correct
6 Correct 9 ms 1900 KB Output is correct
7 Correct 18 ms 1900 KB Output is correct
8 Correct 22 ms 1900 KB Output is correct
9 Correct 9 ms 1900 KB Output is correct
10 Correct 18 ms 1900 KB Output is correct
11 Correct 4 ms 1900 KB Output is correct
12 Correct 4 ms 1900 KB Output is correct
13 Correct 8 ms 1900 KB Output is correct
14 Correct 4 ms 1900 KB Output is correct
15 Correct 17 ms 1900 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1900 KB Output is correct
2 Correct 3 ms 1900 KB Output is correct
3 Correct 2 ms 1900 KB Output is correct
4 Correct 2 ms 1900 KB Output is correct
5 Correct 3 ms 1900 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1900 KB Output is correct
2 Correct 2 ms 1900 KB Output is correct
3 Correct 3 ms 1900 KB Output is correct
4 Correct 3 ms 1900 KB Output is correct
5 Correct 3 ms 1900 KB Output is correct
6 Correct 3 ms 1900 KB Output is correct
7 Correct 3 ms 1900 KB Output is correct
8 Correct 4 ms 1900 KB Output is correct
9 Correct 3 ms 1900 KB Output is correct
10 Correct 5 ms 1900 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1900 KB Output is correct
2 Correct 4 ms 1900 KB Output is correct
3 Correct 3 ms 1900 KB Output is correct
4 Correct 3 ms 1900 KB Output is correct
5 Correct 4 ms 1900 KB Output is correct
6 Correct 3 ms 1900 KB Output is correct
7 Correct 3 ms 1900 KB Output is correct
8 Correct 4 ms 1900 KB Output is correct
9 Correct 3 ms 1900 KB Output is correct
10 Correct 4 ms 1900 KB Output is correct
11 Correct 19 ms 1900 KB Output is correct
12 Correct 22 ms 1952 KB Output is correct
13 Correct 25 ms 2848 KB Output is correct
14 Correct 22 ms 2848 KB Output is correct
15 Correct 31 ms 4376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 4376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 4376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 4376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 4376 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -