Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | spioni.in, spioni.out | Sursă | ONI 2015 baraj gimnaziu |
|---|---|---|---|
| Autor | Marinel Șerban | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 32768 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Spioni (baraj gimnaziu)
Gigel si Ionel se joacă de-a spionii! De aceea ei imaginează o modalitate de a codifica un mesaj astfel încât nimeni să nu îl poată descifra. Toate mesajele lor au lungimea o putere a lui 2. Ei numerotează literele mesajului începând cu 1. Apoi separă literele în două categorii: cele cu număr de ordine impar în stânga, cele cu numar de ordine par în dreapta, păstrând ordinea lor. Procedeul continuă pentru fiecare grupă nou rezultată începând cu cea din stânga, până când fiecare grupă obținută conține un singur caracter. După terminarea operațiilor alipesc grupele de câte o literă rezultate, începând de la stânga spre dreapta și obțin mesajul codificat.
De exemplu pentru mesajul MESAJNECODIFICAT procedează astfel:
1. numerotează
@MESAJNECODIFICAT@
@123456789...@
2. separă

până se obține un singur caracter în fiecare grupă și alipind literele de la stânga spre dreapta rezultă mesajul codificat:
MOJISIEAEDNCAFCT
Cerință
Scrieți un program care să rezolve următoarele două cerințe:
- dat fiind un mesaj, să determine codificarea acestuia;
- dat fiind un mesaj codificat, să determine decodificarea acestuia.
Date de intrare
Pe prima linie a fișierului de intrare spioni.in se găsește un caracter C sau D, indicând faptul că se dorește Codificarea, respectiv Decodificarea mesajului de pe linia a doua. Linia a doua a fișierului de intrare conține un șir de caractere.
Date de ieșire
Fișierul de ieșire spioni.out va conține o singură linie pe care se va scrie mesajul codificat (în cazul în care prima linie a fișierului de intrare conține C), respectiv mesajul decodificat (în cazul în care prima linie a fișierului de intrare conține D).
Restricții
- Șirul de caractere din fișierul de intrare conține caractere având coduri ASCII cuprinse între 33 și 127, lungimea șirului fiind o putere a lui 2 cuprinsă între 2 și 4096.
- Pentru teste valorând 50% din punctaj fișierul de intrare conține pe prima linie C.
Exemplu
| spioni.in | spioni.out | spioni.in | spioni.out |
|---|---|---|---|
| C MESAJNECODIFICAT |
MOJISIEAEDNCAFCT |
D MOJISIEAEDNCAFCT |
MESAJNECODIFICAT |



Poți vedea testele pentru această problemă accesând