Fişierul intrare/ieşire: | criptic.in, criptic.out | Sursă | Cerc informatică Vianu |
Autor | Cristian Francu | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 10240 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Criptic (clasa a 7-a)
Pentru a coda un mesaj în codul criptic vom asocia fiecărui caracter din mesaj un număr de ordine în baza 62. În această bază cifrele sînt, în ordinea valorii:
012...9abcd...zABCD...Z
De exemplu numărul 146(10) este 2m(62). Aceste numere de ordine sînt asociate astfel încît dacă afişăm caracterele în ordinea numerelor de ordine vom obţine mesajul original. Numerele de ordine nu sînt neapărat unice. Dacă două caractere au acelaşi număr de ordine ele vor apărea în mesajul codificat în ordine inversă faţă de mesajul original.
Cerinţă
Dat un mesaj codificat să se decodifice.
Date de intrare
Fişierul de intrare criptic.in conţine un număr de linii. Fiecare linie va începe cu un număr de ordine, urmat de un singur spaţiu şi apoi de caracterul din mesaj.
Date de ieşire
Fişierul de ieşire criptic.out va conţine o singură linie cu mesajul decodificat. Caracterele mesajului vor fi scrie fără spaţii între ele.
Restricţii
- 1 ≤ numărul de linii la intrare ≤ 1000000
- 0 ≤ numerele de ordine la intrare ≤ 3843(10)
- caracterele din mesaj sînt caractere ASCII tipăribile, fără spaţii (coduri mai mari strict decît 32 şi mai mici decît 127)
Exemplu
criptic.in | criptic.out | Explicaţii |
---|---|---|
b0 l Cr d b0 l m4 r b0 e m4 o aZ h m4 w Cr l m4 o | helloworld | Dacă ordonăm caracterele după numărul de ordine, avînd grijă să punem numerele egale în ordine inversă faţă de cum apar în codificare, obţinem: aZ h b0 e b0 l b0 l m4 o m4 w m4 o m4 r Cr l Cr d |