#4136
Fie S = (S1, S2, ..., SN) un şir format din N numere naturale mai mici decât 10 şi x un număr natural cu p cifre, reprezentat în baza 10 prin x = x1x2...xp. Observaţi că poziţiile din şirul S sunt numerotate de la stânga la dreapta de la 1 la N, iar cifrele numărului x sunt numerotate de la stânga la dreapta de la 1 la p (cifra p fiind cifra unităţilor). Scrieţi un program care, cunoscând şirul S, rezolvă următoarele două cerinţe:
Nr perechi de forma x j, determină pentru fiecare pereche dacă numărul x apare ca subșir în prefixul de lungime j al lui S şi afişează valoarea 1 în caz afirmativ, respectiv valoarea 0 în caz contrar;Nr perechi de forma a b, determină şi afişează pentru fiecare pereche numărul de numere naturale din intervalul închis [a, b] care apar ca subșir în șirul S.ONI 2022, clasa a VIII-a
| Problema | subsir | Operații I/O |
subsir.in/subsir.out
|
|---|---|---|---|
| Limita timp | 0.4 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
| Id soluție | #63656835 | Utilizator | |
| Fișier | subsir.cpp | Dimensiune | 1.30 KB |
| Data încărcării | 12 Martie 2026, 22:23 | Scor/rezultat | Eroare de compilare |
subsir.cpp:3:47: error: unrecognized command line option '-f Ofast' #pragma GCC optimize("O3, Ofast, unroll-loops") ^ subsir.cpp:3:47: error: unrecognized command line option '-f unroll-loops' subsir.cpp:12:53: error: unrecognized command line option '-f Ofast' bool check_if_subsequence(int x, int left, int right) { ^ subsir.cpp:12:53: error: unrecognized command line option '-f unroll-loops' subsir.cpp:27:47: error: unrecognized command line option '-f Ofast' int count_intervals(int left, int right, int n) { ^ subsir.cpp:27:47: error: unrecognized command line option '-f unroll-loops' subsir.cpp:34:10: error: unrecognized command line option '-f Ofast' int main() { ^ subsir.cpp:34:10: error: unrecognized command line option '-f unroll-loops' subsir.cpp: In function 'int main()': subsir.cpp:35:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("subsir.in", "r", stdin); ^ subsir.cpp:36:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("subsir.out", "w", stdout); ^ subsir.cpp:39:33: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d", &cerinta, &n); ^ subsir.cpp:42:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &v[i]); ^ subsir.cpp:44:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &queries); ^ subsir.cpp:47:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d", &a, &b); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema subsir 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ă.