Wieża

시간 제한8초메모리 제한2048 MB

요약
한 변의 길이가 엄격히 감소하는 큐브들을 골라 변 길이 합에서 이웃한 큐브의 무늬가 다를 때마다 c를 뺀 값이 최대가 되도록 한다.
난이도

보통10점 중 7점

유형
동적 계획법, 정렬, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

Masz do dyspozycji nn sześciennych klocków, ponumerowanych liczbami od 11 do nn. Klocek numer ii ma wymiary a_i×a_i×a_ia\_i \times a\_i \times a\_i oraz jest pomalowany we wzorek w_iw\_i (wzorki są identyfikowane liczbami całkowitymi).

Twoim celem jest zbudowanie wieży o najwyższej możliwej ocenie, przy użyciu wybranych przez siebie klocków. Wieża powinna składać się z pewnej liczby klocków, ustawionych płasko, jeden na drugim. Niech j_1,…,j_mj\_1, \dots , j\_m oznaczają numery klocków wybranych do budowy wieży (gdzie mm to liczba wybranych klocków), w kolejności od podstawy do szczytu. Wieża jest oceniana według następujących kryteriów:

  • Stabilność. Wieża jest stabilna, jeśli każdy kolejny klocek jest coraz mniejszy, tzn. a_j_x>a_j_x+1a\_{j\_x} > a\_{j\_{x+1}}. Niestabilne wieże dostają ocenę 00, bez względu na pozostałe kryteria.
  • Wysokość. Jeśli wieża ma wysokość h=a_j_1+⋯+a_j_mh = a\_{j\_1} + \dots + a\_{j\_m}, to ocena jest zwiększana o wartość hh.
  • Noty za styl. Sąsiadujące klocki o różnych wzorkach (tzn. w_j_x≠w_j_x+1w\_{j\_x} \ne w\_{j\_{x+1}}) psują estetykę, więc za każdą taką parę sąsiednich klocków ocena jest zmniejszana o karę cc.

입력

W pierwszym wierszu wejścia znajdują się dwie liczby całkowite nn oraz cc (1≤n,c≤500,0001 ≤ n, c ≤ 500\\, 000), oznaczające odpowiednio liczbę dostępnych klocków oraz wysokość kary za sąsiadujące klocki o różnych wzorkach.

W kolejnych n wierszach występują opisy poszczególnych klocków. Opis klocka numer ii znajduje się w ii-tym wierszu i składa się z dwóch liczb całkowitych a_ia\_i oraz w_iw\_i (1≤a_i,w_i≤500,0001 ≤ a\_i , w\_i ≤ 500\\, 000), oznaczających długość boku sześciennego klocka oraz numer wzorku. Klocki są podane w kolejności niemalejących rozmiarów, tzn. a_i≤a_i+1a\_i ≤ a\_{i+1}.

W testach wartych 55 punktów zachodzi dodatkowo: a_i<a_i+1a\_i < a\_{i+1}.

출력

Na wyjściu powinna znaleźć się jedna liczba całkowita – wartość oceny najlepszej wieży, jaką da się zbudować z klocków podanych na wejściu.

힌트

Wyjaśnienie do przykładów:

Rysunek 1: Zestaw czterech klocków jest taki sam w obu testach. Testy różnią się tylko karą cc. W pierwszym teście c=1c = 1, a w drugim c=5c = 5.

Rysunek 2: Najlepsze wieże dla pierwszego testu. Wysokość 88 i podwójna kara. Ocena to 8−2⋅1=68 - 2 \cdot 1 = 6. Dla kary c=5c = 5, te wieże mają niską ocenę 8−2⋅5=−28 - 2 \cdot 5 = -2.

Rysunek 3: Najlepsza wieża dla drugiego testu. Wysokość 55 i brak kary, ponieważ klocki mają ten sam wzorek. Ocena to 5−0⋅c=55 - 0 \cdot c = 5.

예제2

  1. 예제 1

    입력
    4 1
    1 1
    3 2
    4 3
    4 1
    
    예상 출력
    6
    
  2. 예제 2

    입력
    4 5
    1 1
    3 2
    4 3
    4 1
    
    예상 출력
    5