Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Organizując spływ, wypożyczamy na przystani kajaki. Wszystkie kajaki są jednakowe. W jednym kajaku mogą popłynąć co najwyżej dwie osoby, a suma ich wag nie może przekroczyć ustalonego maksymalnego obciążenia. Aby zapłacić jak najmniej, szukamy sposobu rozmieszczenia wszystkich uczestników spływu w minimalnej liczbie kajaków.
Napisz program, który: - wczytuje maksymalne obciążenie kajaka, liczbę uczestników spływu i wagę każdego z nich, - oblicza minimalną liczbę kajaków, jakie należy wynająć, aby rozmieścić w nich wszystkich uczestników spływu w zgodzie z przepisami.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita w. Jest to maksymalne obciążenie kajaka. W drugim wierszu wejścia znajduje się jedna liczba całkowita n. Jest to liczba uczestników spływu. Następnie podane jest n wierszy. W i + 2 wierszu wejścia znajduje się jedna liczba naturalna wi oznaczająca wagę i-tego uczestnika spływu.
Wyjście
W pierwszym wierszu wyjścia należy wypisać jedną liczbę całkowitą - minimalną liczbę kajaków, jakie trzeba wynająć.
Ograniczenia
80 ≤ w ≤ 200, 1 ≤ n ≤ 30 000, 5 ≤ wi ≤ w
Przykład
Input | Output | |
|
|