VIII Wiosenny Turniej w Programowaniu Zespołowym Politechnika Poznańska, 29.05.2004

Zadanie F - Pakowanie plecaka

Autor: Bartosz Nowierski

Opis

Mały Jacuś jedzie wkrótce na obóz harcerski. Jak zawsze zastanawia się co zapakować do plecaka, który przecież ma ograniczony udźwig, tak aby spakowane przedmioty były jak najbardziej użyteczne. Chłopiec jest w posiadaniu pewnej liczby przedmiotów, z których każdy jest opisany dwiema liczbami: wartość (odzwierciedlająca użyteczność przedmiotu) oraz ciężar. Niektóre przedmioty są Jacusiowi niepotrzebne, a wręcz mogą przeszkadzać, stąd wartości przedmiotów mogą być mniejsze lub równe 0. Przy pakowaniu chłopcu zależy przede wszystkim na tym, żeby uzyskać upakowanie maksymalne, w sensie możliwości dołożenia czegoś więcej. Tj. chce tak załadować plecak (choćby nawet zbędnymi rzeczami), by nie móc dołożyć, żadnego innego przedmiotu, będącego w jego posiadaniu, bez wyjmowania przedmiotów już włożonych (cóż... harcerzem to on jest może początkującym, ale za to jest zafascynowany popisami strongmanów). Dopiero spośród wszystkich upakowań maksymalnych chce wybrać upakowanie o możliwie największej sumie wartości przedmiotów.

Zadanie

Mając daną liczbę przedmiotów posiadanych przez Jacusia oraz ich wartości i ciężary, należy podać jaką łącznie największą wartość można uzyskać, przy założeniu maksymalnego upakowania.

Specyfikacja wejścia

W pierwszym wierszu wejścia podana jest dodatnia liczba całkowita D (D ≤ 50), oznaczająca liczbę zestawów testowych, które dalej pojawią się na wejściu. W pierwszym wierszu zestawu znajdują się dwie liczby całkowite N i M (1 ≤ N ≤ 1.000, 1 ≤ M ≤ 8.000), oznaczające odpowiednio liczbę przedmiotów Jacusia oraz maksymalny udźwig plecaka. Kolejne N wierszy zestawu to opisy przedmiotów. Każdy nich składa się z dwóch liczb całkowitych W i V (1 ≤ W ≤ M, –1.000.000 ≤ V ≤ 1.000.000), oznaczających ciężar oraz wartość przedmiotu.

Specyfikacja wyjścia

Dla każdego zestawu danych należy zapisać, w osobnym wierszu, jedną liczbę całkowitą - największą sumaryczną wartość przedmiotów jaką da się zapakować zgodnie z preferencjami Jacusia.

Przykład

Wejście

3
2 2
2 3
1 4
3 8
3 3
4 4
6 6
3 10
1 4
1 -3
1 2

Wyjście

4
7
3