はまやんはまやんはまやん

hamayanhamayan's blog

Five Transportations [ AtCoder Beginner Contest 123 C]

https://atcoder.jp/contests/abc123/tasks/abc123_c

解説

https://atcoder.jp/contests/abc123/submissions/4870666

数学の問題。
A~Eの中の最小の区間ボトルネックであることが言える。
この最小をmiをすると、その部分がボトルネックとなって、毎回mi人ずつ都市6に到着することになる。
つまり、N人をmi人グループに分けて送ることになる。
グループ数はN/miの切り上げだが、これは(N+mi-1)/miという切り上げ特有のテクがあるので、
これで計算する。
 
A/Bの切り上げ ⇔ (A+B-1)/B
 
最初のグループは5秒で到着する。
次のグループはその1秒後に到着する。
その次のグループはその1秒後に到着する。
つまり、「5+(グループ数-1)=4+グループ数」が答えとなる。

ll N, A[5];
//---------------------------------------------------------------------------------------------------
void _main() {
	cin >> N;
	rep(i, 0, 5) cin >> A[i];
	
	ll mi = infl;
	rep(i, 0, 5) chmin(mi, A[i]);
 
	ll ans = 4 + (N + mi - 1) / mi;
	cout << ans << endl;
}