#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 | #63794556 | Utilizator | |
| Fișier | subsir.cpp | Dimensiune | 2.44 KB |
| Data încărcării | 19 Martie 2026, 09:52 | Scor/rezultat | Eroare de compilare |
subsir.cpp: In function 'int digitDP(const std::vector<int>&, int, int)': subsir.cpp:16:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (pos_num == digits.size()) return 1; // am format număr valid ^ subsir.cpp: In function 'int main()': subsir.cpp:49:12: error: reference to 'cin' is ambiguous int c; cin >> c; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:50:5: error: reference to 'cin' is ambiguous cin >> n; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:51:33: error: reference to 'cin' is ambiguous for (int i = 0; i < n; i++) cin >> v[i]; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:60:12: error: reference to 'cin' is ambiguous int q; cin >> q; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:64:30: error: reference to 'cin' is ambiguous string x; int b; cin >> x >> b; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:66:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < b && j < x.size(); i++) ^ subsir.cpp:68:13: error: reference to 'cout' is ambiguous cout << (j == x.size()) << "\n"; ^ subsir.cpp:5:10: note: candidates are: std::ofstream cout ofstream cout("subsir.out"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^ subsir.cpp:68:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] cout << (j == x.size()) << "\n"; ^ subsir.cpp:72:23: error: reference to 'cin' is ambiguous int a, b; cin >> a >> b; ^ subsir.cpp:4:10: note: candidates are: std::ifstream cin ifstream cin("subsir.in"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: std::istream std::cin extern istream cin; /// Linked to standard input ^ subsir.cpp:79:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (dig.size() <= n && [&]() { ^ subsir.cpp:89:13: error: reference to 'cout' is ambiguous cout << count_b << "\n"; ^ subsir.cpp:5:10: note: candidates are: std::ofstream cout ofstream cout("subsir.out"); ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from subsir.cpp:1: /usr/include/c++/4.8/iostream:61:18: note: std::ostream std::cout extern ostream cout; /// Linked to standard output ^
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ă.