답안 #110024

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
110024 2019-05-09T00:13:16 Z CaroLinda 선물상자 (IOI15_boxes) C++14
10 / 100
3 ms 384 KB
#include <bits/stdc++.h>

#define lp(i,a,b) for(int i = a ; i < b ; i++)
#define ll long long
#define ff first
#define ss second

const int MAXN = 1e7 + 5;
const int inf = 1e9 + 10 ;

using namespace std ;

//Declaracoes
int N , K , L ;
int pos[MAXN] ;
ll dp1[MAXN] , dp2[MAXN] ;

void print()
{
	lp(i,0,N) cout<<dp1[i]<<" ";
	cout<<endl ;
	lp(i,0,N) cout<<dp2[i]<<" ";
	cout<<endl;
}

//Funcao principal
ll delivery(int n , int k , int l , int positions[] )
{
	//Globalizacao
	N = n ; K = k ; L = l ;
	lp(i,0,n) pos[i] = positions[i] ;
	
	lp(i,0,n)
		if( pos[i] == 0 ) pos[i] = inf , N-- ;
		
	sort( pos , pos + n ) ;
	n = N ;
	
	lp(i,0,n)
	{
		dp1[i] = pos[i] * 2 ;
		if( i - k >= 0 ) dp1[i] += dp1[i-k] ; 
	}
	
	for( int i = n-1 ; i >= 0 ; i-- )
	{
		dp2[i] = ( L - pos[i]) * 2 ;
		if( i + k < n ) dp2[i] += dp2[i+k] ;
	}
	
	ll best =  1LL * inf * MAXN ;
	
	lp(i,0,n)
		best = min( best , dp1[i] + dp2[i+1] ) ;
	
	lp(i,0,n)
	{
		ll x = 0;
		if( i + k < n ) x = dp2[i+k] ;
		ll y = 0 ;
		if( i-1 >= 0 ) y = dp1[i-1] ;
		best = min( best , y + x + L ) ;
	} 
	
	return best ;
}
# 결과 실행 시간 메모리 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 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 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 384 KB Output is correct
6 Incorrect 2 ms 384 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 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 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Incorrect 2 ms 384 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Incorrect 2 ms 384 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Incorrect 2 ms 384 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Incorrect 2 ms 384 KB Output isn't correct
14 Halted 0 ms 0 KB -