제출 #74710

#제출 시각아이디문제언어결과실행 시간메모리
74710doowey선물상자 (IOI15_boxes)C++14
100 / 100
573 ms170964 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll delivery(int N, int K, int L, int p[]) {
	vector<ll> bef, aft;
	for(int i = 0; i < N; i ++ ){
		if(p[i] <= L/2)
			bef.push_back(p[i] * 2);
		else
			aft.push_back((L-p[i])*2);
	}
	reverse(aft.begin(), aft.end());
	for(int i = K; i < bef.size(); i ++ )
		bef[i] += bef[i-K];
	for(int i = K; i < aft.size(); i ++ )
		aft[i] += aft[i - K];
	int tr;
	ll ans = (ll)1e18;
	ll sum;
	for(int tl = 1; tl <= K; tl ++ ){
		tr = K-tl;
		sum = L;
		if(tl < (int)bef.size())
			sum += bef[bef.size()-tl-1];
		if(tr < (int)aft.size())
			sum += aft[aft.size()-tr-1];
		ans = min(ans, sum);
	}
	sum = 0;
	if(!bef.empty())
		sum += bef.back();
	if(!aft.empty())
		sum += aft.back();
	ans = min(ans, sum);
	return ans;
}

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

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:17:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < bef.size(); i ++ )
                 ~~^~~~~~~~~~~~
boxes.cpp:19:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < aft.size(); i ++ )
                 ~~^~~~~~~~~~~~
#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...