Detalii evaluare #22924731

Rezumat problemă

#1219 Cript

Ilinca a citit despre criptarea mesajelor, acum dorește să comunice cu prietena ei Miruna numai prin mesaje criptate folosind un sistem propriu de criptare.

Ilinca ştie că fiecare caracter se reprezintă în memoria calculatorului pe 8 biți, în care se memorează scrierea în baza 2 a codului ASCII al caracterului respectiv. Pentru a cripta caracterul, Ilinca foloseşte o matrice pătratică având 8 linii (numerotate de la 0 la 7 de sus în jos) şi 8 coloane (numerotate de la 0 la 7 de la stânga la dreapta). Pe prima linie a matricei Ilinca scrie cei 8 biţi reprezentând scrierea în baza 2 a codului ASCII al caracterului, pe poziţia 0 fiind scrisă cifra cea mai semnificativă (corespunzătoare lui 27). Pe fiecare dintre următoarele 7 linii din matrice scrie permutarea circulară cu o poziție la stânga a liniei anterioare. Ordonează lexicografic liniile matricei formate și defineşte cript-ul caracterului ca fiind succesi­unea de biți reprezentată de ultima coloană din matrice, parcursă de sus în jos, urmată de indicele liniei din matrice pe care a ajuns după ordonarea lexicografică reprezentarea în baza 2 a codului ASCII al caracterului. Dacă există linii egale în matrice, după ordonarea lexicografică acestea îşi vor păstra ordinea relativă iniţială, astfel că linia conţinând reprezentarea în baza 2 a codului ASCII al caracterului va fi prima dintre acestea.

Pentru a cripta un mesaj, Ilinca scrie în ordine cript-urile caracterelor din mesajul respectiv.

Miruna cunoaşte sistemul de criptare al Ilincăi, ca urmare ştie să decripteze mesajele primite.

Scrieți un program care să rezolve următoarele două cerinţe:
1. citește un mesaj şi afişează mesajul criptat conform sistemului Ilincăi;
2. citeşte un mesaj criptat conform sistemului Ilincăi şi determină mesajul decriptat.

Detalii

Problema Cript Operații I/O cript.in/cript.out
Limita timp 0.1 secunde Limita memorie Total: 2 MB / Stivă 1 MB
Id soluție #22924731 Utilizator Coarfa Andreea (coarfaandreea)
Fișier cript.cpp Dimensiune 2.62 KB
Data încărcării 13 Mai 2020, 00:16 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

cript.cpp: In function 'int main()':
cript.cpp:98:30: warning: array subscript has type 'char' [-Wchar-subscripts]
                 g<<codif[s[i]][j];

                              ^
cript.cpp:87:14: warning: unused variable 'codul' [-Wunused-variable]
         char codul[10];

              ^
cript.cpp: In function 'char decodific(int*)':
cript.cpp:78:1: warning: control reaches end of non-void function [-Wreturn-type]
 }

 ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
0 0.004 secunde OK. 5 5
1 0.004 secunde OK. 5 5
2 0.004 secunde OK. 5 5
3 0.016 secunde OK. 5 5
4 0 secunde OK. 5 5
5 0.02 secunde OK. 5 5
6 0.016 secunde OK. 5 5
7 0 secunde OK. 5 5
8 0 secunde OK. 5 5
9 0 secunde OK. 5 5
10 0 secunde OK. 5 5
11 0.004 secunde OK. 5 5
12 0.004 secunde OK. 5 5
13 0.004 secunde OK. 5 5
14 0.02 secunde OK. 5 5
15 0.02 secunde OK. 5 5
16 0.016 secunde OK. 5 5
17 0 secunde OK. 5 5
18 0 secunde OK. 5 5
19 0.008 secunde OK. 5 5
Punctaj total 100

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Cript face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.