#4450
extrapare
Un număr natural se numește extrapar dacă poate fi scris ca sumă de puteri distincte ale lui 2
, puteri care au exponent par. Numărul 0
este considerat, de asemenea, extrapar. Considerând reprezentarea în baza 2 pentru un număr natural, se numerotează pozițiile cifrelor din reprezentare, de la dreapta către stânga, începând cu 0
. Asupra reprezentării în baza 2 trebuie să se efectueze o singură operație. Operația constă din eliminarea a exact K
cifre situate pe poziții consecutive. Fiind date reprezentările în baza 2 pentru N
numere naturale, să se determine pentru fiecare dintre ele dacă se poate obține un număr extrapar în condițiile de mai sus.
ONI 2023 baraj juniori
Problema | extrapare | Operații I/O |
extrapare.in /extrapare.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
Id soluție | #54263951 | Utilizator | |
Fișier | extrapare.cpp | Dimensiune | 2.21 KB |
Data încărcării | 23 Noiembrie 2024, 22:58 | Scor / rezultat | Eroare de compilare |
extrapare.cpp: In function 'bool isExtraPar(const string&)': extrapare.cpp:9:5: error: expected primary-expression before '__int128' __int128 num = 0; ^ extrapare.cpp:9:5: error: expected ';' before '__int128' extrapare.cpp:11:9: error: 'num' was not declared in this scope num = (num << 1) | (bit - '0'); ^ extrapare.cpp:14:9: error: 'num' was not declared in this scope if (num == 0) return true; ^ extrapare.cpp:17:5: error: expected primary-expression before '__int128' __int128 sum = 0; ^ extrapare.cpp:17:5: error: expected ';' before '__int128' extrapare.cpp:19:9: error: expected primary-expression before '__int128' __int128 power = (__int128)1 << i; ^ extrapare.cpp:19:9: error: expected ';' before '__int128' extrapare.cpp:20:13: error: 'power' was not declared in this scope if (power > num) break; ^ extrapare.cpp:20:21: error: 'num' was not declared in this scope if (power > num) break; ^ extrapare.cpp:21:13: error: 'num' was not declared in this scope if (num & power) { ^ extrapare.cpp:21:19: error: 'power' was not declared in this scope if (num & power) { ^ extrapare.cpp:22:13: error: 'sum' was not declared in this scope sum |= power; ^ extrapare.cpp:26:12: error: 'sum' was not declared in this scope return sum == num; ^ extrapare.cpp:26:19: error: 'num' was not declared in this scope return sum == num; ^ extrapare.cpp:27:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ extrapare.cpp: In function 'int main()': extrapare.cpp:53:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("extrapare.in", "r", stdin); ^ extrapare.cpp:54:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("extrapare.out", "w", stdout); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema extrapare 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ă.