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

hamayanhamayan's blog

Five Dishes [AtCoder Beginner Contest 123 B]

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

解説

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

料理を注文する順番を全探索する。
これはC++だとnext_permutationを使うといい。
 
注文順が確定したら、あとはシミュレーションをする。
注文が10の倍数の時刻でなかったときは、一番近い10の倍数の時刻で注文するのが、最適なので
そういう方針でシミュレーションしよう。
その中で最短の時間が答え。

int A[5];
//---------------------------------------------------------------------------------------------------
void _main() {
	rep(i, 0, 5) cin >> A[i];
	
	vector<int> v;
	rep(i, 0, 5) v.push_back(i);
	int ans = inf;
	do {
		int t = 0;
		rep(i, 0, 5) {
			int vi = v[i];
			if (0 < t % 10) t = t - (t % 10) + 10;
			t += A[vi];
		}
		chmin(ans, t);
	} while (next_permutation(all(v)));

	cout << ans << endl;
}