#3641
Se dă un număr n. De asemenea, ai două variabile a și b, inițial egale cu 0. Apoi, pentru fiecare număr i de la 1 la n, trebuie să alegem între a = a ^ i și b = b ^ i, unde cu ^ notăm operația XOR.
Calculați suma maximă ce se poate obține între a și b.
| Problema | Xorstanta | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
| Id soluție | #59668105 | Utilizator | |
| Fișier | xorstanta.cpp | Dimensiune | 772 B |
| Data încărcării | 06 Octombrie 2025, 16:38 | Scor/rezultat | 100 puncte |
xorstanta.cpp: In function 'int prefixXOR(int)': xorstanta.cpp:18:32: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] if ((ri - (1<<i)) % (1<<i+1) < (1<<i)) ^ xorstanta.cpp: In function 'int main()': xorstanta.cpp:40:41: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] cout << (ans + (1 << (int) log2(n)+1) - 1) << '\n'; ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | OK. | 1 | 1 | Exemplu | |
| 2 | 0 secunde | OK. | 9 | 9 | ||
| 3 | 0 secunde | OK. | 10 | 10 | ||
| 4 | 0 secunde | OK. | 10 | 10 | ||
| 5 | 0.064 secunde | OK. | 10 | 10 | ||
| 6 | 0.06 secunde | OK. | 10 | 10 | ||
| 7 | 0.06 secunde | OK. | 10 | 10 | ||
| 8 | 0.056 secunde | OK. | 10 | 10 | ||
| 9 | 0.056 secunde | OK. | 10 | 10 | ||
| 10 | 0.056 secunde | OK. | 10 | 10 | ||
| 11 | 0.056 secunde | OK. | 10 | 10 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Xorstanta 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ă.