- Time limit: 2.00 s
- Memory limit: 512 MB
Uolevi on kehittänyt uuden pakkausmenetelmän, jonka avulla voi tallentaa monen merkkijonon pienempään tilaan.
Menetelmä jakaa merkkijonon osiin ja tallentaa jokaisen osan muodossa ks, jossa k on kokonaisluku ja s on merkkijono. Tämä tarkoittaa, että merkkijono s esiintyy k kertaa peräkkäin. Kaikki osat ovat peräkkäin pakatussa merkkijonossa.
Esimerkiksi merkkijonon ABCABCXXXXXXX voi pakata jakamalla sen osiin ABCABC ja XXXXXXX. Osa ABCABC on pakattuna 2ABC ja osa XXXXXXX on pakattuna 7X, joten koko merkkijono on pakattuna 2ABC7X.
Merkkijonon pakkaamiseen on yleensä monia tapoja. Esimerkiksi merkkijonon ABABAB voi esittää pakattuna 3AB, 1AB2AB, 1A1B1A1B1A1B ja monilla muilla tavoilla. Pakattu merkkijono voi siis olla myös pidempi kuin alkuperäinen merkkijono.
Sinulle annetaan pakattu merkkijono ja tehtäväsi on palauttaa siitä alkuperäinen merkkijono.
Syöte
Syötteen ainoalla rivillä on pakattu merkkijono. Sitä vastaa alkuperäinen merkkijono, jonka pituus on n ja joka muodostuu merkeistä A–Z.
Tuloste
Tulosta alkuperäinen merkkijono.
Esimerkki 1
Syöte:
2ABC7X
Tuloste:
ABCABCXXXXXXX
Esimerkki 2
Syöte:
12A
Tuloste:
AAAAAAAAAAAA
Osatehtävä 1 (18 pistettä)
- 1 \le n \le 20
Osatehtävä 2 (23 pistettä)
- 1 \le n \le 1000
Osatehtävä 3 (59 pistettä)
- 1 \le n \le 10^6
