Hide

Problem C
Virkne

Languages da de en et fi lt lv pl uk

Virkne no naturāliem skaitļiem $(x_1, \ldots , x_ m)$ ir laba, ja $x_1 = 1$ un katram $1 < j \leq m$ izpildās vai nu $x_ j = x_{j-1}+1$ vai $x_ j = x_ k \cdot x_ l$ kādām $k$ un $l$ vērtībām ar $0 < k \leq l < j$. Piemēram, virknes $(1,1)$ un $(1,2)$ abas ir labas, bet virkne $(1,3)$ nav laba. Dotiem $n$ veseliem skaitļiem $w_1, \ldots , w_ n$ definēsim svaru no kādas veselas skaitļu virknes $(x_1, \ldots , x_ m)$, kas apmierina $1 \leq x_ j \leq n$ visiem $1 \leq j \leq m$, kā

\[ w_{x_1} + \cdots + w_{x_ m}. \]

Piemēram, dotiem svariem $w_1 = 10$, $w_2 = 42$, $w_3 = 1$, virknes $(1,1)$ svars ir $20$ un virknes $(1,3)$ svars ir $11$. Katram $1\leq v\leq n$ definēsim $s_ v$ kā mazāko iespējamo svaru kādai labai skaitļu virknei, kas satur skaitli $v$.

Jūsu uzdevums ir noteikt vērtības $s_1,\ldots ,s_ n$.

Ievaddati

Pirmā ievada rinda satur veselo skaitli $n$, svaru skaitu. Nākamās $n$ rindas satur svarus, veselus skaitļus $w_1, \ldots , w_ n$.

Izvaddati

Izvadiet $n$ rindas, kas satur $s_1$, $\ldots $, $s_ n$ šādā secībā.

Ierobežojumi un vērtēšana

Vienmēr izpildās ierobežojumi $1\leq n \leq 30\, 000$ un $1\leq w_ i \leq 10^6$ visiem $1\leq i \leq n$.

Jūsu risinājums tiks pārbaudīts uz vairākām testu grupām. Katra grupa ir vērta noteiktu punktu skaitu. Katra testu grupa satur vairākus testus. Lai saņemtu punktus par testu grupu, ir jāatrisina visi testi testu grupā. Jūsu gala rezultāts būs lielākais punktu skaits, kas iegūts ar vienu risinājuma iesniegumu.

Grupa

Punkti

Ierobežojumi

$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$

Bez papildu ierobežojumiem

Sample Input 1 Sample Output 1
3
10
42
1
10
52
53