Detalii evaluare #57607298

Rezumat problemă

#4793 bitsir

Considerăm numerele naturale N, X, Y, M[1], M[2], ..., M[N]. Șirul de numere naturale A[1], A[2], ..., A[N] este numit bun dacă următoarele condiții sunt satisfăcute simultan:

  • A[1] OR A[2] OR ... OR A[N] = X, unde OR reprezintă operația sau pe biți.
  • A[1] XOR A[2] XOR ... XOR A[N] = Y, unde XOR reprezintă operația sau exclusiv pe biți.
  • A[i] AND M[i] = M[i], pentru 1 ≤ i ≤ N, unde AND reprezintă operația și pe biți.

Se dau N, X, Y și M[1], M[2], ..., M[N], cu semnificația din enunț. Să se determine dacă există șiruri bune, respectiv să se determine numărul de șiruri bune, modulo 1.000.000.007.

OJI 2025, clasa a 10-a

Detalii

Problema bitsir Operații I/O bitsir.in/bitsir.out
Limita timp 0.1 secunde Limita memorie Total: 256 MB / Stivă 64 MB
Id soluție #57607298 Utilizator Ardelean Raul (Raul_A)
Fișier bitsir.cpp Dimensiune 3.14 KB
Data încărcării 07 Aprilie 2025, 14:38 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

bitsir.cpp:43:20: warning: missing terminating ' character [enabled by default]
 const int MAX = 100'000, MOD = 1e9 + 7;

                    ^
bitsir.cpp:43:1: error: missing terminating ' character
 const int MAX = 100'000, MOD = 1e9 + 7;

 ^
bitsir.cpp:2:12: error: expected ',' or ';' before 'long'
 #define ll long long

            ^
bitsir.cpp:3:13: note: in expansion of macro 'll'
 #define int ll

             ^
bitsir.cpp:45:1: note: in expansion of macro 'int'
 int N, X, Y;

 ^
bitsir.cpp: In function 'long long int fact(long long int)':
bitsir.cpp:74:40: error: 'MOD' was not declared in this scope
     return memo[n] = fact(n - 1) * n % MOD;

                                        ^
bitsir.cpp: In function 'long long int expr(long long int, long long int)':
bitsir.cpp:83:25: error: 'MOD' was not declared in this scope
             p = p * a % MOD, b--;

                         ^
bitsir.cpp:84:21: error: 'MOD' was not declared in this scope
         a = a * a % MOD;

                     ^
bitsir.cpp: In function 'long long int C(long long int, long long int)':
bitsir.cpp:94:36: error: 'MOD' was not declared in this scope
     return fact(n) * expr(fact(k), MOD - 2) % MOD * expr(fact(n - k), MOD - 2) % MOD;

                                    ^
bitsir.cpp: In function 'void read()':
bitsir.cpp:99:12: error: 'N' was not declared in this scope
     cin >> N >> X >> Y;

            ^
bitsir.cpp:99:17: error: 'X' was not declared in this scope
     cin >> N >> X >> Y;

                 ^
bitsir.cpp:99:22: error: 'Y' was not declared in this scope
     cin >> N >> X >> Y;

                      ^
bitsir.cpp:121:47: error: 'MOD' was not declared in this scope
                     ans *= (expr(2,r-1) - 1 + MOD)%MOD, ans %= MOD;

                                               ^
bitsir.cpp:125:48: error: 'MOD' was not declared in this scope
                     ans *= expr(2,r-1), ans %= MOD;

                                                ^
bitsir.cpp:133:48: error: 'MOD' was not declared in this scope
                     ans *= expr(2,r-1), ans %= MOD;

                                                ^
bitsir.cpp: In function 'long long int fact(long long int)':
bitsir.cpp:75:1: warning: control reaches end of non-void function [-Wreturn-type]
 }

 ^
bitsir.cpp: In function 'long long int C(long long int, long long int)':
bitsir.cpp:95:1: warning: control reaches end of non-void function [-Wreturn-type]
 }

 ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema bitsir face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.