| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 9 초 (추가 시간 없음) | 1024 MB | 4 | 2 | 2 | 100.000% |
Mateusz uwielbia muzykę pop. Jest odprężająca, świetnie się do niej tańczy, a nawet pomaga w programowaniu. Te wszystkie zalety wymagają jednak dobrego zgrania melodii z bitem.
Mateusz stworzył właśnie nową melodię i zamierza dopasować do niej dobre bity. Melodia trwa n sekund i niektóre jej momenty mogą być dużo lepsze od innych. Jakość i-tej sekundy melodii jest opisana liczbą całkowitą ai (być może ujemną) i trzeba do niej dobrać nieujemny całkowity współczynnik bitowego wzmocnienia bi. Współczynnik wzmacnia tę sekundę C(bi)-krotnie, gdzie C(bi) oznacza liczbę zapalonych bitów w zapisie binarnym liczby bi.∗ Przykładowo, wybranie bi = 13 daje trzykrotne wzmocnienie i-tej sekundy melodii, gdyż zapisem binarnym liczby 13 jest 1101 i zawiera on trzy zapalone bity.
Ostateczną jakość całej piosenki możemy zapisać jako:
a1 · C(b1) + a2 · C(b2) + . . . + an · C(bn).
Każdy lubi piosenki z narastającym wzmocnieniem bitowym i Mateusz nie jest wyjątkiem. Współczynniki bitowe bi muszą tworzyć rosnący ciąg nieujemnych liczb całkowitych z pewnym górnym limitem m:
0 ≤ b1 < b2 < . . . < bn ≤ m.
Celem Mateusza jest takie dobranie współczynników bitowych, aby zmaksymalizować ostateczną jakość piosenki. Jaką największą wartość może on otrzymać?
∗Innymi słowy, C(bi) jest liczbą jedynek w zapisie binarnym liczby bi.
W pierwszym wierszu wejścia znajdują się dwie liczby całkowite n, m (1 ≤ n ≤ 200, n − 1 ≤ m ≤ 1018), oznaczające długość trwania piosenki w sekundach oraz górne ograniczenie na współczynniki bitowe.
W drugim wierszu wejścia znajduje się n liczb całkowitych a1, . . . , an (−1014 ≤ ai ≤ 1014), oznaczających jakości kolejnych sekund melodii.
Na wyjściu powinna znajdować się jedna liczba całkowita – maksymalna możliwa ostateczna jakość piosenki.
Wyjaśnienie pierwszego przykładu: Melodia składa się z trzech sekund o jakościach odpowiednio 2, −1, 3. Zauważ, że jakość sekundy może być ujemna! Optymalnym ciągiem b jest b1 = 3, b2 = 4, b3 = 5. Wtedy otrzymujemy:
a1 · C(b1) + a2 · C(b2) + a3 · C(b3) = 2 · C(3) + (−1) · C(4) + 3 · C(5) = 2 · 2 + (−1) · 1 + 3 · 2 = 9
3 5 2 -1 3
9
3 2 1 1 -1
0
Contest > Algorithmic Engagements > PA 2019 1-1번