#1227
Spioni
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 număr 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ă
MSJEOIIA EANCDFCT apoi repetă paşii 1 şi 2 pentru 12345678 12345678 fiecare grupă rezultată MJOI SEIA ENDC ACFT 1234 1234 1234 1234 MO JI SI EA ED NC AF CT 12 12 12 12 12 12 12 12 M O J I S I E A E D N C A F C T 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
până se obţine un singur caracter în fiecare grupă şi alipind literele de la stânga spre dreapta rezultă mesajul codificat: MOJISIEAEDNCAFCT
Scrieţi un program care să rezolve următoarele două cerinţe:
Problema | Spioni | Operații I/O |
![]() spioni.in /spioni.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
Id soluție | #43678193 | Utilizator | |
Fișier | spioni.cpp | Dimensiune | 591 B |
Data încărcării | 09 Mai 2023, 20:08 | Scor / rezultat | Eroare de compilare |
spioni.cpp: In function 'void codif()': spioni.cpp:14:9: error: 'ans' was not declared in this scope ans = ans + s[0]; ^ spioni.cpp:17:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < s.size(); i += 2) ^ spioni.cpp:19:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 1; i < s.size(); i += 2) ^ spioni.cpp:21:17: error: too many arguments to function 'void codif()' codif(s1); ^ spioni.cpp:10:6: note: declared here void codif() ^ spioni.cpp:22:17: error: too many arguments to function 'void codif()' codif(s2); ^ spioni.cpp:10:6: note: declared here void codif() ^ spioni.cpp: In function 'int main()': spioni.cpp:33:16: error: too many arguments to function 'void codif()' codif(s); ^ spioni.cpp:10:6: note: declared here void codif() ^ spioni.cpp:34:17: error: 'ans' was not declared in this scope fout << ans; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Spioni face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.