제출 #836952

#제출 시각아이디문제언어결과실행 시간메모리
836952Halym2007선물상자 (IOI15_boxes)C++17
50 / 100
41 ms17940 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll pref[1005], suf[1005], answer;
int a[1005];
ll f (int x, int k) {
	ll jp = (x + k - 1) / k;
	return jp;
}

ll delivery(int N, int K, int L, int p[]) {
	for (int i = 1; i <= N; ++i) a[i] = p[i - 1];
	for (int i = 1; i <= N; ++i) {
		pref[i] = a[i];
		if (i >= K) {
			pref[i] += pref[i - K];
		}	
	}
	for (int i = N; i >= 1; i--) {
		suf[i] = L - a[i];
		if (i + K <= N) 
			suf[i] += suf[i + K];
	}
	answer = f(N, K) * 1LL * L;
  	for (int i = 0; i <= N; ++i) {
		for (int j = i + 1; j <= N + 1; ++j) {
			int c = f(j - i - 1, K);
			answer = min (answer, c * 1LL * L + 2*(pref[i] + suf[j]));
//			if (answer == 8) {
//				cout << i << " " << j << " " << c << " " << L << " " << pref[i] << " " << suf[j] << "\n"; 
//				exit(0);
//			}
		}
	}
	return answer;
}


// int main() {
//     freopen("input.txt", "r", stdin);
// 	int n, k, l;
// 	cin >> n >> k >> l;
// 	int p[n];
// 	for (int i = 0; i < n; ++i) {
// 		cin >> p[i];
// 	}
// 	cout << delivery (n, k, l, p);
// }

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

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:27:13: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   27 |    int c = f(j - i - 1, K);
      |            ~^~~~~~~~~~~~~~
#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...