ABC176 復習

C問題までは簡単なんだけどなぁ・・。

A - Takoyaki

単純に、全体で作成したい個数を、一回あたりの個数で割った数に時間をかければ良いだけです。 余りが出る場合は1回分の時間を足すことを忘れずに。

n, x, t = map(int, input().split())

ans = n // x * t
if n % x > 0:
  ans += t

print(ans)

B - Multiple of 9

9で割り切れるか?をそのまま書いたら通ってしまいました。
公式解説によれば、Pythonはそのままでいけるみたいですね。

n = int(input())

if n % 9 == 0:
  print('Yes')
else:
  print('No')

C - Step

配列において、a[i] > a[i + 1]になる場合に差を足していけば答えが求まります。 また、その場合にa[i + 1]の値をa[i]と同じにすることを忘れずに。
あまり深く考えずとも解けるのではないでしょうか。

n = int(input())
a = list(map(int, input().split()))

ans = 0

for i in range(n - 1):
  if a[i] > a[i + 1]:
    diff = a[i] - a[i + 1]
    ans += diff
    a[i + 1] += diff

print(ans)

D - Wizard in Maze

おそらく、幅優先探索の亜種のように考えれば解けると思ったのですが、解けませんでした。 幅優先探索をしつつ、DP配列を持ってワープの最小値を更新していくようなイメージではないのでしょうか。
ひとまず解説を待つことにします。

総括

C問題までがとても簡単で、おそらくC問題も茶色Diffはないのではないでしょうか。
D問題以降を解けるようにならないと、レーティングは上がっていかないでしょうね・・。
精進あるのみ。