13904

552 ワード

答えを出す.
  • 配列はd,wを受け入れる.
  • 点数の高い順に並べます.
  • の配列をめぐって、高スコアの問題をいつ解くかを決定します.
    (インデックスとして配列を作成)
  • n = input()
    n = int(n)
    
    arr = []
    todo = []
    
    for i in range(1001):
      todo.append(0)
    
    for i in range(n):
      d, w = map(int, input().split())
      arr.append([d,w])
      
    arr.sort(key = lambda x:x[1], reverse = True)
    
    i = 0
    while True:
      if i == n:
        break
      
      q = arr[i][0]
      while q > 0:
        if todo[q] == 0:
          todo[q] = arr[i][1]
          break
        else:
          q -= 1
    
      i += 1
      
    print(sum(todo))