lengh=[0]
n, lengh[0] = map(int, input().split())
#robimy grida od day od indx
days = [[] for _ in range(n)]
days[0] = [[] for _ in range(lengh[0])]
for day in range(1, n):
t = list(map(int, input().split()))
lengh.append(t[0])
l = lengh[-1]
days[day] = [[] for _ in range(l)]
for i in range(l):
if t[i+1]!=0:
days[day-1][t[i+1]-1].append(i)
# print(*days, sep="\n")
costs = [[] for d in range(n)]
res = 0
for day in range(n-1, -1, -1):
c=0
for i in range(lengh[day]):
costs[day].append(1)
if days[day][i]:
costs[day][i] = 0
for j in range(len(days[day][i])):
costs[day][i]+=costs[day+1][days[day][i][j]]
c+=costs[day][i]
res = max(res, c)
# print(*costs, sep="\n")
print(res)
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 26 27 28 29 30 31 32 | lengh=[0] n, lengh[0] = map(int, input().split()) #robimy grida od day od indx days = [[] for _ in range(n)] days[0] = [[] for _ in range(lengh[0])] for day in range(1, n): t = list(map(int, input().split())) lengh.append(t[0]) l = lengh[-1] days[day] = [[] for _ in range(l)] for i in range(l): if t[i+1]!=0: days[day-1][t[i+1]-1].append(i) # print(*days, sep="\n") costs = [[] for d in range(n)] res = 0 for day in range(n-1, -1, -1): c=0 for i in range(lengh[day]): costs[day].append(1) if days[day][i]: costs[day][i] = 0 for j in range(len(days[day][i])): costs[day][i]+=costs[day+1][days[day][i][j]] c+=costs[day][i] res = max(res, c) # print(*costs, sep="\n") print(res) |
English