2025年6月17日 星期二

貪心闖關

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

d = [int(i) for i in input().split()]

# print(d)


sco = 0

while True:

  curV = min([i for i in d if i!=0])

  if curV > t:break

  curI = d.index(curV)

  

  if curI ==n-1:

    d[curI]=0

    sco+=curV

    # print(d)

    continue

  

  obj = curI + 1

  if obj == n-1:

    d[obj]+=curV

    d[curI]=0

    sco+=curV

    continue

  

  while d[obj]==0 and obj<n-1:

    obj+=1

  if obj == n-1:

    d[obj]+=curV

    d[curI]=0

    sco+=curV

    continue

  

  d[obj]+=curV

  d[curI]=0

  sco+=curV

    

  # print(d)

  if sum(d)==0:break

# print(d)

print(sco)


data:

6 8

4 4 2 1 9 3


Output:

18

沒有留言:

張貼留言