#3162
cifre_bin_back
Se dă un număr natural n
. Afișați în ordine lexicografică toate secvențele de cifre binare care au atâtea cifre de 0
și atâtea cifre de 1
câte are reprezentarea binară a lui n
.
Problema | cifre_bin_back | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #49571662 | Utilizator | |
Fișier | cifre_bin_back.cpp | Dimensiune | 605 B |
Data încărcării | 07 Martie 2024, 13:08 | Scor / rezultat | 100 puncte |
cifre_bin_back.cpp: In function 'int afisare()': cifre_bin_back.cpp:3:128: warning: no return statement in function returning non-void [-Wreturn-type] int n , m , x[30] , p[30] , cnt , a[30] , c1 , c0; int afisare() { for(int i = 1 ; i <= cnt ; i++) cout << x[i]; cout << '\n'; } int valid(int k) { int c00 = 0 , c11 = 0; for(int i = 1 ; i <= k ; i++) if(x[i] == 0) c00++; else c11++; if(c00 <= c0 && c11 <= c1) return 1; else return 0; } void back(int k) { for(int i = 0 ; i <= 1 ; i++) { x[k] = i; if(valid(k)) { if(k == cnt) afisare(); else back(k + 1); } } } int main() { cin >> n; while(n != 0) { a[++cnt] = n % 2; n /= 2; } for(int i = 1 ; i <= cnt ; i++) { if(a[i] == 0) c0++; else c1++; } back(1); } ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 20 | 20 | Exemplu | |
2 | 0 secunde | OK. | 20 | 20 | ||
3 | 0 secunde | OK. | 20 | 20 | ||
4 | 0.068 secunde | OK. | 20 | 20 | ||
5 | 0.328 secunde | OK. | 20 | 20 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema cifre_bin_back 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ă.