n, c = map(int, input().split())
klocki = []
for _ in range(n):
klocki.append(list(map(int, input().split())))
kwyn = {}
for roz, kol in klocki[::-1]:
kwyn[kol] = 0
maxwyn, lastkol = klocki[-1]
popro = maxwyn
kwyn[klocki[-1][1]] = klocki[-1][0]
for roz, kol in klocki[-2::-1]:
if popro == roz:
continue
popro = roz
if kol == lastkol:
maxwyn += roz
kwyn[kol] = maxwyn
else:
przekol = kwyn[kol] + roz
przewyn = maxwyn + roz - c
kwyn[kol] = max(kwyn[kol], przekol, przewyn)
if przekol > maxwyn:
maxwyn = przekol
lastkol = kol
if przewyn > maxwyn:
maxwyn = przewyn
lastkol = kol
print(maxwyn)
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 33 34 35 | n, c = map(int, input().split()) klocki = [] for _ in range(n): klocki.append(list(map(int, input().split()))) kwyn = {} for roz, kol in klocki[::-1]: kwyn[kol] = 0 maxwyn, lastkol = klocki[-1] popro = maxwyn kwyn[klocki[-1][1]] = klocki[-1][0] for roz, kol in klocki[-2::-1]: if popro == roz: continue popro = roz if kol == lastkol: maxwyn += roz kwyn[kol] = maxwyn else: przekol = kwyn[kol] + roz przewyn = maxwyn + roz - c kwyn[kol] = max(kwyn[kol], przekol, przewyn) if przekol > maxwyn: maxwyn = przekol lastkol = kol if przewyn > maxwyn: maxwyn = przewyn lastkol = kol print(maxwyn) |
English