#2276
cb
Se consideră un șir a[1]
, a[2]
, …, a[n]
de numere naturale. Se dau și T
intervale închise de forma [x, y]
, cu x ≤ y
. Pentru fiecare din cele T
intervale de forma [x, y]
trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului [x, y]
?
-
Problema | cb | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #28224604 | Utilizator | |
Fișier | cb.cpp | Dimensiune | 730 B |
Data încărcării | 25 Februarie 2021, 23:37 | Scor / rezultat | Eroare de compilare |
cb.cpp: In function 'int main()': cb.cpp:9:85: warning: unused variable 'cnt' [-Wunused-variable] { cin >> n >> T; for (int i = 0; i < n; ++i) cin >> a[i]; sort(a, a + n); int x, y, cnt; for (int i = 1; i <= T; ++i) { cin >> x >> y; int p2 = BsMax(y); int p1 = BsMin(x); if (p1 == -1) cout << 0 << '\n'; else cout << p2 - p1 + 1 << '\n'; } } int BsMin(int v) { int l = 0, r = n - 1, m; int poz = -1; while (l <= r) { m = (l + r) / 2; if (a[m] >= v) { poz = m; r = m - 1; } else l = m + 1; } return poz; } int BsMax(int v) { int l = 0, r = n - 1, m; int poz = -1; while (l <= r) { m = (l + r) / 2; if (a[m] <= v) { poz = m; l = m + 1; } else r = m - 1; } return poz; ^ cb.cpp: In function 'int BsMax(int)': cb.cpp:9:567: error: expected '}' at end of input { cin >> n >> T; for (int i = 0; i < n; ++i) cin >> a[i]; sort(a, a + n); int x, y, cnt; for (int i = 1; i <= T; ++i) { cin >> x >> y; int p2 = BsMax(y); int p1 = BsMin(x); if (p1 == -1) cout << 0 << '\n'; else cout << p2 - p1 + 1 << '\n'; } } int BsMin(int v) { int l = 0, r = n - 1, m; int poz = -1; while (l <= r) { m = (l + r) / 2; if (a[m] >= v) { poz = m; r = m - 1; } else l = m + 1; } return poz; } int BsMax(int v) { int l = 0, r = n - 1, m; int poz = -1; while (l <= r) { m = (l + r) / 2; if (a[m] <= v) { poz = m; l = m + 1; } else r = m - 1; } return poz; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema cb 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ă.