Problem B
Variabelnamn
Languages
en
sv
Nikolaj har programmerat i många år, men en sak han aldrig förstått är vitsen med att skriva läsbar kod. När Nikolaj skapar variabler så namnger han dem alltid $c_1$, $c_2$, $c_3$, osv. Ibland händer det att han vill skapa en variabel $c_ i$, men att namnet $c_ i$ redan är upptaget. I så fall testar han istället $c_{2i}$, $c_{3i}$ osv. tills han hittar ett namn som inte är upptaget.
Skriv ett program som givet en lista på $N$ variabelnamn som Nikolaj vill använda, skriver ut vilka namn han faktiskt kommer använda enligt strategin.
Indata
Den första raden innehåller ett heltal $N$, antalet variabler ($1 \leq N \leq 2 \cdot 10^5$). Var och en av de följande $N$ raderna innehåller ett heltal $x$ ($1 \leq x \leq 10^4$). Detta innebär att Nikolaj vill skapa en variabel och kalla den $c_ x$. Nikolaj skapar variablerna i samma ordning som de förekommer i indatan.
Utdata
För var och en av de $N$ heltalen $x$, skriv ut ett tal $y$ som innebär att Nikolaj skapade variabeln $c_ y$.
Förklaring av exempelfall
I exempelfallet kommer det här att hända
-
En variabel $c_1$ skapas.
-
En variabel $c_3$ skapas.
-
Nikolaj vill kalla nästa variabel $c_1$ men det går inte, så den får heta $c_2$.
-
Nikolaj vill kalla nästa variabel $c_2$ men det går inte, så den får heta $c_4$.
-
Nikolaj vill kalla nästa variabel $c_1$ men nästa lediga variabel är $c_5$.
-
Nikolaj vill kalla nästa variabel $c_5$ men det går inte, så den får heta $c_{10}$.
-
Nikolaj vill kalla nästa variabel $c_5$ men det går inte, så den får heta $c_{15}$.
Sample Input 1 | Sample Output 1 |
---|---|
7 1 3 1 2 1 5 5 |
1 3 2 4 5 10 15 |