Hide

Problem A
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

  1. En variabel $c_1$ skapas.

  2. En variabel $c_3$ skapas.

  3. Nikolaj vill kalla nästa variabel $c_1$ men det går inte, så den får heta $c_2$.

  4. Nikolaj vill kalla nästa variabel $c_2$ men det går inte, så den får heta $c_4$.

  5. Nikolaj vill kalla nästa variabel $c_1$ men nästa lediga variabel är $c_5$.

  6. Nikolaj vill kalla nästa variabel $c_5$ men det går inte, så den får heta $c_{10}$.

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