Atenție! Aceasta este o versiune veche a paginii., scrisă la 2025-03-28 11:58:47.000.
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 avatar alex.cojocaru Cojocaru Alexandru alex.cojocaru
Timp de execuție pe test 0.05 sec Limită de memorie 32768 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip halfstea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

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:

  1. dat fiind un mesaj, să determine codificarea acestuia;
  2. 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

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 3 categorii