답안 #138694

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
138694 2019-07-30T08:41:57 Z MohamedAhmed04 곤돌라 (IOI14_gondola) C++14
25 / 100
62 ms 4728 KB
#include "gondola.h"
#include <bits/stdc++.h>
//#include "grader.cpp"
using namespace std ;

int valid(int n, int arr[])
{
	int st = -1;
	for(int i = 0 ; i < n ; ++i)
	{
		if(arr[i] <= n)
		{
			st = i ;
			break ;
		}
	}
	map<int , int>mp ;
	for(int i = 0 ; i < n ; ++i)
	{
		if(mp[arr[i]] > 0)
			return 0 ;
		mp[arr[i]]++ ;
	}
	if(st == -1)
		return 1 ;
	int idx = st , cnt = 0;
	while(true)
	{
		idx++ ;
		idx %= n ;
		cnt++ ;
		if(idx == st)
			break ;
		if(arr[idx] <= n)
			continue ;
		arr[idx] = (arr[st] + cnt) % n ;
		if(arr[idx] == 0)
			arr[idx] = n ;
	}
	idx = st , cnt = 0 ;
	while(true)
	{
		idx++ ;
		idx %= n ;
		cnt++ ;
		if(idx == st)
			break ;
		int x = (arr[st] + cnt) % n ;
		if(x == 0)
			x = n ;
		if(x != arr[idx] && arr[idx] <= n)
			return 0 ;
	}
    return 1;
}

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

int replacement(int n, int arr[], int replacementSeq[])
{
	int st = -1 , MAX = *max_element(arr , arr + n);
	map<int , int>mp ;
	for(int i = 0 ; i < n ; ++i)
		mp[arr[i]] = 1 ;
	for(int i = 0 ; i < n ; ++i)
	{
		if(arr[i] <= n)
		{
			st = i ;
			break ;
		}
	}
	vector< pair<int , int> >vp ;
	if(st == -1)
	{
		for(int i = 1 ; i <= n ; ++i)
			vp.push_back({arr[i] , i}) ;
	}
	else
	{
		int idx = st , cnt = 0;
		while(true)
		{
			idx++ ;
			idx %= n ;
			cnt++ ;
			if(idx == st)
				break ;
			if(arr[idx] <= n)
				continue ;
			int x = (arr[st] + cnt) % n ;
			if(x == 0)
				x = n ;
			vp.push_back({arr[idx] , x}) ;
		}
	}
	sort(vp.begin() , vp.end()) ;
	int ans = 0 , last = n+1;
	for(int i = 0 ; i < vp.size() ; ++i)
	{
		replacementSeq[ans] = vp[i].second ;
		ans++ ;
		for(int j = last ; j < vp[i].first ; ++j)
		{
			replacementSeq[ans] = j ;
			ans++ ;
		}
		last = vp[i].first + 1 ;
	}
	return ans ;
}

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

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

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:99:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0 ; i < vp.size() ; ++i)
                  ~~^~~~~~~~~~~
gondola.cpp:61:16: warning: unused variable 'MAX' [-Wunused-variable]
  int st = -1 , MAX = *max_element(arr , arr + n);
                ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 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 256 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 256 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 21 ms 2296 KB Output is correct
7 Correct 13 ms 632 KB Output is correct
8 Correct 36 ms 3960 KB Output is correct
9 Correct 12 ms 1528 KB Output is correct
10 Correct 50 ms 4552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 252 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 21 ms 2168 KB Output is correct
7 Correct 14 ms 632 KB Output is correct
8 Correct 38 ms 4068 KB Output is correct
9 Correct 13 ms 1528 KB Output is correct
10 Correct 50 ms 4572 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 256 KB Output is correct
13 Correct 25 ms 2168 KB Output is correct
14 Correct 2 ms 256 KB Output is correct
15 Correct 62 ms 4728 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 380 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 256 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 256 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 256 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 256 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 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 -
# 결과 실행 시간 메모리 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 -