Problem C
Ciąg liczb
Languages
da
de
en
et
fi
lt
lv
pl
uk
Ciąg dodatnich liczb całkowitych $(x_1,\ldots ,x_ m)$ jest dobry jeśli $x_1 = 1$ oraz dla każdego $1 < j \leq m$ mamy albo $x_ j=x_{j-1}+1$ albo $x_ j=x_ k\cdot x_ l$ dla pewnych $k$ oraz $l$ spełniających $0< k\leq l< j$. Na przykład, oba ciągi $(1,1)$ oraz $(1,2)$ są dobre, ale ciąg $(1,3)$ nie jest dobry. Dla danych $n$ liczb całkowitych $w_1,\ldots ,w_ n$ definiujemy wagę ciągu liczb całkowitych $(x_1,\ldots ,x_ m)$ spełniającego $1\leq x_ j \leq n$ dla każdego $1\leq j\leq m$ jako
\[ w_{x_1} +\cdots +w_{x_ m}\, . \]Na przykład, mając wagi $w_1=10, w_2=42,w_3= 1$, wagą ciągu $(1,1)$ jest $20$, a wagą ciągu $(1,3)$ jest $11$. Dla $1\leq v\leq n$ definiujemy $s_ v$ jako najmniejszą możliwą wagę dobrego ciągu zawierającego wartość $v$.
Twoim zadaniem jest wyznaczenie wartości $s_1,\ldots ,s_ n$.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita $n$, będąca liczbą wag. Kolejne $n$ wierszy zawierają liczby całkowite wag $w_1, \ldots , w_ n$.
Wyjście
Wypisz $n$ wierszy zawieraje kolejno: $s_1$, $\ldots $, $s_ n$.
Ograniczenia i punktacja
Zawsze jest spełnione $1\leq n \leq 30\, 000$ oraz $1\leq w_ i \leq 10^6$ dla każdego $1\leq i \leq n$.
Twoje rozwiązanie zostanie przetestowane na zestawie grup testowych, z których każda warta jest pewną liczbę punktów. Każda grupa testowa zawiera zestaw przypadków testowych. Aby uzyskać punkty za grupę testową musisz rozwiązać wszystkie przypadki testowe w tej grupie. Twój ostateczny wynik będzie maksymalnym wynikiem pojedynczego zgłoszenia.
Grupa |
Punkty |
Ograniczenia |
$1$ |
$11$ |
$n\leq 10$ |
$2$ |
$10$ |
$n\leq 300$, $w_1=\cdots =w_ n = 1$ |
$3$ |
$10$ |
$n\leq 300$, $w_1=\cdots =w_ n$ |
$4$ |
$9$ |
$n\leq 1400$, $w_1=\cdots =w_ n = 1$ |
$5$ |
$45$ |
$n\leq 5000$ |
$6$ |
$15$ |
Brak dodatkowych ograniczeń |
Sample Input 1 | Sample Output 1 |
---|---|
3 10 42 1 |
10 52 53 |