n, kara = map(int, input().split())
klocki = [tuple(map(int, input().split())) for i in range(n)]
klocki.sort(reverse=True, key=lambda x: x[0])
najlepsza_ocena = 0
for poczatek in range(n):
wysokosc = 0
ostatni_wzorek = -1
liczba_kar = 0
for i in range(poczatek, n):
rozmiar, wzorek = klocki[i]
if i == poczatek or rozmiar < klocki[i-1][0]:
wysokosc += rozmiar
if ostatni_wzorek != -1 and ostatni_wzorek != wzorek:
liczba_kar += 1
ostatni_wzorek = wzorek
ocena = wysokosc - (liczba_kar * kara)
najlepsza_ocena = max(najlepsza_ocena, ocena)
print(najlepsza_ocena)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | n, kara = map(int, input().split()) klocki = [tuple(map(int, input().split())) for i in range(n)] klocki.sort(reverse=True, key=lambda x: x[0]) najlepsza_ocena = 0 for poczatek in range(n): wysokosc = 0 ostatni_wzorek = -1 liczba_kar = 0 for i in range(poczatek, n): rozmiar, wzorek = klocki[i] if i == poczatek or rozmiar < klocki[i-1][0]: wysokosc += rozmiar if ostatni_wzorek != -1 and ostatni_wzorek != wzorek: liczba_kar += 1 ostatni_wzorek = wzorek ocena = wysokosc - (liczba_kar * kara) najlepsza_ocena = max(najlepsza_ocena, ocena) print(najlepsza_ocena) |
English