公式
E - Triple Attack 解説
by
E - Triple Attack 解説
by
kyopro_friends
「体力が 1 以上である最も前の敵」を以下では単に「先頭の敵」と呼ぶことにします。
先頭の敵の体力が \(5\) 以上であるとき、現在の \(T\) の値によらず、次の \(3\) 回の行動で先頭の敵の体力を \(5\) 減らすことができます。先頭の敵の体力を \(H\) とすると、この3回1セットの行動は \(\lfloor\frac{H}{5}\rfloor\) セット繰り返されます。この部分をまとめて処理し、残りを愚直にシミュレーションすることで、\(O(N)\) で答えを求めることができます。
実装例(Python)
N = int(input())
A = list(map(int,input().split()))
T = 0
for a in A:
num = a//5
T += num*3
a -= num*5
while a>0:
T+=1
if T%3==0:
a-=3
else:
a-=1
print(T)
投稿日時:
最終更新: