#1829
Programatoarea Petra a început un curs de criptografie. Fiind un spirit creativ, Petra a creat deja o metodă elaborată de criptare a unei parole sub forma unei perechi (tabel de litere aparţinând mulţimii {‘a’...’z’}, dicţionar de cuvinte). Din păcate pentru Petra, metoda ei de criptare a parolei, poate fi decriptată de oricine astfel:
i>1, \(c_i\) este vecină în tabel cu litera \(c_{i-1}\).T perechi (\(cuvânt_i\), \(a_i\)), unde \(cuvânt_i\) este un cuvânt iar \(a_i\) este numărul de apariţii în tabel, reconstituie litera \(p_i\) a parolei astfel: \(p_i =\) ‘a’ + ( \(a_i\) mod 26). Încercând să îmbunătăţească algoritmul, Petra a decis să înlocuiască unele litere din tabel cu semnul întrebării '?'. Un semn '?' poate fi înlocuit cu orice literă când se parcurge tabelul. Convinge-o pe Petra că, în ciuda îmbunătăţirii, îi poţi găsi parola pornind de la orice pereche de (dicţionar, tabel de litere) dată.Concursul EMPOWERSOFT, 2016
| Problema | CuvinteAscunse | Operații I/O |
cuvinteascunse.in/cuvinteascunse.out
|
|---|---|---|---|
| Limita timp | 0.3 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
| Id soluție | #52507475 | Utilizator | |
| Fișier | cuvinteascunse.cpp | Dimensiune | 3.71 KB |
| Data încărcării | 02 Octombrie 2024, 00:57 | Scor/rezultat | 90 puncte |
cuvinteascunse.cpp: In function 'void Add(Trie*, std::string)': cuvinteascunse.cpp:23:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<cuv.size();i++) ^ cuvinteascunse.cpp:27:22: warning: array subscript has type 'char' [-Wchar-subscripts] if(P->urm[NUM]==NULL) ^ cuvinteascunse.cpp:28:23: warning: array subscript has type 'char' [-Wchar-subscripts] P->urm[NUM]= new Trie(); ^ cuvinteascunse.cpp:29:21: warning: array subscript has type 'char' [-Wchar-subscripts] P=P->urm[NUM]; ^ cuvinteascunse.cpp: In function 'void DFS(Trie*, int, int, std::string)': cuvinteascunse.cpp:51:22: warning: array subscript has type 'char' [-Wchar-subscripts] if(mat[nx][ny]=='?') ^ cuvinteascunse.cpp:51:26: warning: array subscript has type 'char' [-Wchar-subscripts] if(mat[nx][ny]=='?') ^ cuvinteascunse.cpp:59:35: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]=(char)(i+'a'); ^ cuvinteascunse.cpp:59:39: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]=(char)(i+'a'); ^ cuvinteascunse.cpp:62:35: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]='?'; ^ cuvinteascunse.cpp:62:39: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]='?'; ^ cuvinteascunse.cpp:69:23: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]-'a'; ^ cuvinteascunse.cpp:69:27: warning: array subscript has type 'char' [-Wchar-subscripts] mat[nx][ny]-'a'; ^ cuvinteascunse.cpp:69:28: warning: statement has no effect [-Wunused-value] mat[nx][ny]-'a'; ^ cuvinteascunse.cpp:70:33: warning: array subscript has type 'char' [-Wchar-subscripts] if(P->urm[mat[nx][ny]-'a']==NULL) ^ cuvinteascunse.cpp:70:37: warning: array subscript has type 'char' [-Wchar-subscripts] if(P->urm[mat[nx][ny]-'a']==NULL) ^ cuvinteascunse.cpp:72:34: warning: array subscript has type 'char' [-Wchar-subscripts] DFS(P->urm[mat[nx][ny]-'a'],nx,ny,curentS+mat[nx][ny]); ^ cuvinteascunse.cpp:72:38: warning: array subscript has type 'char' [-Wchar-subscripts] DFS(P->urm[mat[nx][ny]-'a'],nx,ny,curentS+mat[nx][ny]); ^ cuvinteascunse.cpp:72:65: warning: array subscript has type 'char' [-Wchar-subscripts] DFS(P->urm[mat[nx][ny]-'a'],nx,ny,curentS+mat[nx][ny]); ^ cuvinteascunse.cpp:72:69: warning: array subscript has type 'char' [-Wchar-subscripts] DFS(P->urm[mat[nx][ny]-'a'],nx,ny,curentS+mat[nx][ny]); ^ cuvinteascunse.cpp: In function 'int main()': cuvinteascunse.cpp:95:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j=0;j<cuv.size();j++) ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | OK. | 10 | 10 | ||
| 1 | 0 secunde | OK. | 10 | 10 | ||
| 2 | 0.02 secunde | OK. | 10 | 10 | ||
| 3 | 0.02 secunde | OK. | 10 | 10 | ||
| 4 | 0.024 secunde | OK. | 10 | 10 | ||
| 5 | 0.032 secunde | Caught fatal signal 11 | 10 | 0 | ||
| 6 | 0.024 secunde | OK. | 10 | 10 | ||
| 7 | 0.028 secunde | OK. | 10 | 10 | ||
| 8 | 0.008 secunde | OK. | 10 | 10 | ||
| 9 | 0.188 secunde | OK. | 10 | 10 | ||
| Punctaj total | 90 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema CuvinteAscunse 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ă.