Codeforces Round #266(Div.2)
はい。
http://codeforces.com/contest/466
A. Cheap Travel
ざっくりと大意
・Annは地下鉄を使ってn回通勤する。
・切符は1回毎のaルーブルのものと、m回乗れるbルーブルのものがあるのでn回分を最も料金を抑えるといくらになるか。
方針のようなもの
・買い方を試して最安を探す。
n,m,a,b=map(int,raw_input().split()) print min(n*a,(n/m)*b+(n%m)*a,(n+m-1)/m*b)
最安になるのは全て1回毎aルーブル払うか、mの倍数回分はまとめ買いして端数回はaルーブル払うか、まとめ買いを余らせてでも全てまとめ買いにするかの3通りの支払いのどれか