Hide

Problem C
Talfølge

Languages da de en et fi lt lv pl uk

En følge af positive heltal $(x_1,\ldots ,x_ m)$ er god hvis $x_1 = 1$ og der for $1 < j \leq m$ gælder enten $x_ j=x_{j-1}+1$ eller $x_ j=x_ k\cdot x_ l$ for nogle $k$ og $l$ med $0< k\leq l< j$. For eksempel er talfølgerne $(1,1)$ og $(1,2)$ begge gode, men talfølgen $(1,3)$ er ikke god. For $n$ givne heltal $w_1,\ldots ,w_ n$ defines vægten an en heltalsfølge $(x_1,\ldots ,x_ m)$, der opfylder $1\leq x_ j \leq n$ for alle $1\leq j\leq m$, som

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

Hvis for eksempel de givne vægte er $w_1=10, w_2=42 ,w_3 = 1$, så har talfølgen $(1,1)$ vægt $20$ og talfølgen $(1,3)$ har vægt $11$. For $1\leq v\leq n$, lad $s_ v$ angive den mindst mulige vægt af en god talfølge, der indeholder værdien $v$.

Din opgave er at bestemme værdierne $s_1,\ldots ,s_ n$.

Indlæsning

Første linje af indlæsningen bestar af heltallet $n$, antallet af vægte. De næste $n$ linjer indeholder heltalsvægtene $w_1, \ldots , w_ n$.

Udskrift

Skriv $n$ linjer med $s_1$, $\ldots $, $s_ n$ i rækkefølge.

Begrænsninger og pointgivning

Der gælder altid $1\leq n \leq 30\, 000$ og $1\leq w_ i \leq 10^6$ for hvert $1\leq i \leq n$.

Din løsning vil blive testet på en række testgrupper, hver med en vist antal point. Hver testgruppe indeholder en række testfald. For at opnå point for en testgruppe skal du løse alle testfald i testgruppen. Din endelige score vil være den højeste score for en enkelt indsendelse.

Gruppe

Point

Begrænsninger

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

Ingen yderligere begrænsninger

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