公式

C - 会社の役職と給与 / Company Positions and Salaries 解説 by sounansya


ある社員の給与ランクは、その部下の給与ランク以下である必要があります。このことから、番号の大きい順に給与ランクができるだけ大きくなるように決めていけば良いことが分かります。

社長の給与ランクは \(1\) である必要があることに注意してください。

実装例(Python3)

import sys

input = sys.stdin.readline
n = int(input())
g = [[] for _ in range(n)]
u = [0] * n
u[0] = min(int(input()), 1)
for i in range(1, n):
    p, u[i] = map(int, input().split())
    g[p - 1].append(i)
for i in range(n - 1, -1, -1):
    for j in g[i]:
        u[i] = min(u[i], u[j])
print(-1 if u[0] == 0 else sum(u))

投稿日時:
最終更新: