from sys import stdin, stdout
d_length = []
days, d_l = [int(x) for x in stdin.readline().split()]
d_length.append(d_l)
d_prev = [[-1] * d_length[0]]
for i in range(1, days):
d_prev.append([int(x) - 1 for x in stdin.readline().split()])
d_l, d_prev[i] = d_prev[i][0] + 1, d_prev[i][1:]
d_length.append(d_l)
result = 0
last_needed = [1] * d_length[days-1]
for i in range(days-2, -1, -1):
needed = [0] * d_length[i]
for j in range(d_length[i+1]):
if d_prev[i+1][j] > -1:
needed[d_prev[i+1][j]] += last_needed[j]
for j in range(d_length[i]):
needed[j] = max(1, needed[j])
day_need = sum(needed)
result = max(result, day_need)
last_needed = needed
stdout.write(str(result))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from sys import stdin, stdout d_length = [] days, d_l = [int(x) for x in stdin.readline().split()] d_length.append(d_l) d_prev = [[-1] * d_length[0]] for i in range(1, days): d_prev.append([int(x) - 1 for x in stdin.readline().split()]) d_l, d_prev[i] = d_prev[i][0] + 1, d_prev[i][1:] d_length.append(d_l) result = 0 last_needed = [1] * d_length[days-1] for i in range(days-2, -1, -1): needed = [0] * d_length[i] for j in range(d_length[i+1]): if d_prev[i+1][j] > -1: needed[d_prev[i+1][j]] += last_needed[j] for j in range(d_length[i]): needed[j] = max(1, needed[j]) day_need = sum(needed) result = max(result, day_need) last_needed = needed stdout.write(str(result)) |
English