#736
Codif
Pentru scrierea mesajelor soldaţii dintr-o unitate militară folosesc 9
litere mici: a
, e
, i
, o
, u
, m
, n
, r
, s
şi caracterul spaţiu. Aceste litere sunt codificate cu ajutorul cifrelor 1
, 2
, …, 9
(în ordinea de mai sus), iar pentru caracterul spaţiu se foloseşte cifra 0
. Astfel codificarea textului ana are mere
se poate realiza prin numărul natural 171018206282
.
Pentru a mări gradul de securitate a mesajelor transmise soldaţii relizează o supracodificare, înlocuind fiecare cifră k
folosită la codicare cu puterea 2
k
. Astfel textul anterior se supracodifică astfel: 2128212256416442564
.
Să se scrie un program care pentru o supracodificare dată, determină textul iniţial. Dacă există mai multe astfel de texte se vor determina toate.
Lot Juniori, Alba Iulia, 2010
Problema | Codif | Operații I/O |
codif.in /codif.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 16 MB
/
Stivă 16 MB
|
Id soluție | #42335812 | Utilizator | |
Fișier | codif.cpp | Dimensiune | 1.59 KB |
Data încărcării | 01 Martie 2023, 15:25 | Scor / rezultat | 100 puncte |
codif.cpp: In function 'void fct(std::string, int)': codif.cpp:13:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici==s.size()) ^ codif.cpp:21:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-1 && s[aici+1]=='6') ^ codif.cpp:23:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-2 && s[aici+1]=='2' && s[aici+2]=='8') ^ codif.cpp:30:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-2 && s[aici+1]=='5' && s[aici+2]=='6') ^ codif.cpp:36:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-1 && s[aici+1]=='2') ^ codif.cpp:47:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-2 && s[aici+1]=='1' && s[aici+2]=='2') ^ codif.cpp:53:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(aici<s.size()-1 && s[aici+1]=='4') ^ codif.cpp: In function 'int main()': codif.cpp:81:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<v.size();i++) ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0 secunde | OK. | 10 | 10 | ||
3 | 0 secunde | OK. | 10 | 10 | ||
4 | 0 secunde | OK. | 10 | 10 | ||
5 | 0 secunde | OK. | 10 | 10 | ||
6 | 0 secunde | OK. | 10 | 10 | ||
7 | 0 secunde | OK. | 10 | 10 | ||
8 | 0 secunde | OK. | 10 | 10 | ||
9 | 0 secunde | OK. | 10 | 10 | ||
10 | 0 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Codif 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ă.