AGC019 A : Ice Tea Store(300)

作成日:2017.08.30
最終更新日:2017.08.30

問題概要

問題本文

 $0.25L,0.5L,1L,2L$ボトル入りのアイスティーがそれぞれ1本$Q,H,S,D$円で売っている。 各サイズの在庫は無限である時、アイスティーをちょうど$N$リットル買うのに必要な金額を求めよ。
制約
$1 \leq Q,H,S,D \leq 10^8$
$1 \leq N \leq 10^9$
入力はすべて整数

考え方

 $1L$を買うのに必要な金額は$min(S,2H,4Q)$である。 よって$S$をそれに置き換えて考えても良い。 同様に$D$は$min(D,2S)$($S$は置き換えた後)に置き換えて考えられる。 こうすることで答えは$D * (N/2) + S * (N\%2)$と表わされる。

ソースコード

マクロ等はこちら

LL Q,H,S,D;
LL N;

int main(){
	scanf("%lld%lld%lld%lld" , &Q , &H , &S , &D);
	scanf("%lld" , &N);
	H = min(H , Q * 2);
	S = min(S , H * 2);
	D = min(D , S * 2);
	printf("%lld\n" , D*(N/2)+S*(N%2));
	return 0;
}

解法まとめ

 $S,D$をそれぞれ$1,2L$買うのに必要な金額に置き換えてから答えを求める。(7-10行)

AGC019の他の問題 B C D E F

自己紹介

プログラミングとか合成音声とか
詳しくはこちら
twitter

プライバシーポリシー

個人情報利用についてはこちら

最終更新日:2023.03.05

お問い合わせ

このページに関するお問い合わせはこちら

競技プログラミングMENU

問題を解くまでの道のり

その他

全体MENU

寄付モドキ

0冂から10000冂まで
詳しくはこちら