Official

A - 倉庫の荷物検品 / Warehouse Package Inspection Editorial by sounansya


AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題 A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。


まず、はじめ棚 \(S\) にいる状態から全ての棚を巡る方法として、以下の \(2\) つのみ考えれば良いです:

  • \(S\) から棚 \(1\) まで行き、そこから棚 \(N\) まで進む。
  • \(S\) から棚 \(N\) まで行き、そこから棚 \(1\) まで進む。

この移動にかかる時間の最小値を \(X\) とすると、求める答えは \(\displaystyle X+\sum_{i=1}^N T_i\) です。

実装例(Python3)

n, d, s = map(int, input().split())
t = list(map(int, input().split()))
print(min(s + n - 2, 2 * n - s - 1) * d + sum(t))

posted:
last update: