제출 #47606

#제출 시각아이디문제언어결과실행 시간메모리
47606RezwanArefin01선물상자 (IOI15_boxes)C++17
20 / 100
33 ms16528 KiB
#include "boxes.h"
#include <bits/stdc++.h> 
using namespace std;

typedef long long ll; 

ll dp[1010][1010][2];
vector<int> a; 
int N, K, L; 

ll solve(int l, int r, int side) {
	if(l == r - 1) {
		if(!side) return min(a[l], L - a[l]);
		else return min(a[r], L - a[r]); 
	}
	ll &ret = dp[l][r][side];
	if(ret != -1) return ret; 
	if(side == 0) {
		ret = solve(l + 1, r, 0) + a[l + 1] - a[l]; 
		ret = min(ret, solve(l, r - 1, 1) + a[l] + L - a[r - 1]); 
	} else {
		ret = solve(l, r - 1, 1) + a[r] - a[r - 1];
		ret = min(ret, solve(l + 1, r, 0) + a[l + 1] + L - a[r]);  
	}
	return ret; 
}
ll delivery(int n, int k, int l, int p[]) {
	N = n, K = k, L = l;
	if(K == 1 || N == 1) {
		ll tot = 0; 
		for(int i = 0; i < N; i++) 
			tot += 2 * min(p[i], L - p[i]); 
		return tot; 
	}
	if(N == K) {
		memset(dp, -1, sizeof dp);
		a.push_back(0); 
		for(int i = 0; i < N; i++) 
			a.push_back(p[i]);
		a.push_back(L);

		return solve(0, N + 1, 0);  
	}
}

컴파일 시 표준 에러 (stderr) 메시지

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:44:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...