#1042
Fie n un număr natural și M={S1,S2,…,Sn} o mulțime de șiruri de caractere nevide. Fie Sk un șir de caractere din M. Atunci, orice caracter al lui Sk aparține mulțimii {'a','b'}. Notăm prin |Sk| numărul caracterelor șirului Sk sau, echivalent, lungimea sa. O subsecvență Sk[i:j] a lui Sk este formată din caracterele situate pe pozițiile consecutive i, i+1, .., j. Astfel, dacă Sk = 'abbbaababa', atunci Sk[3:6] = 'bbaa' sau subsecvența evidențiată: 'abbbaababa'.
Fiind dată o mulțime M, se cere să se determine lungimea maximă a unei subsecvențe care se găsește în toate șirurile din M.
OJI 2013, clasele XI-XII
| Problema | Subsecvente | Operații I/O |
subsecvente.in/subsecvente.out
|
|---|---|---|---|
| Limita timp | 0.6 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
| Id soluție | #63203368 | Utilizator | |
| Fișier | subsecvente.cpp | Dimensiune | 2.85 KB |
| Data încărcării | 20 Februarie 2026, 16:14 | Scor/rezultat | Eroare de compilare |
subsecvente.cpp: In function 'bool check(int)': subsecvente.cpp:30:23: error: '__int128_t' was not declared in this scope current_h = ((__int128_t)current_h * P + (s[0][i] - 'a' + 1)) % M; ^ subsecvente.cpp:30:34: error: expected ')' before 'current_h' current_h = ((__int128_t)current_h * P + (s[0][i] - 'a' + 1)) % M; ^ subsecvente.cpp:34:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = L; i < s[0].length(); i++) { ^ subsecvente.cpp:36:33: error: '__int128_t' was not declared in this scope long long to_remove = ((__int128_t)(s[0][i - L] - 'a' + 1) * powP[L - 1]) % M; ^ subsecvente.cpp:38:34: error: expected ')' before 'current_h' current_h = ((__int128_t)current_h * P + (s[0][i] - 'a' + 1)) % M; ^ subsecvente.cpp:47:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (s[i].length() < L) return false; ^ subsecvente.cpp:50:27: error: '__int128_t' was not declared in this scope current_h = ((__int128_t)current_h * P + (s[i][j] - 'a' + 1)) % M; ^ subsecvente.cpp:50:38: error: expected ')' before 'current_h' current_h = ((__int128_t)current_h * P + (s[i][j] - 'a' + 1)) % M; ^ subsecvente.cpp:54:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = L; j < s[i].length(); j++) { ^ subsecvente.cpp:55:37: error: '__int128_t' was not declared in this scope long long to_remove = ((__int128_t)(s[i][j - L] - 'a' + 1) * powP[L - 1]) % M; ^ subsecvente.cpp:57:38: error: expected ')' before 'current_h' current_h = ((__int128_t)current_h * P + (s[i][j] - 'a' + 1)) % M; ^ subsecvente.cpp: In function 'int main()': subsecvente.cpp:73:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (s[i].length() < min_len) min_len = s[i].length(); ^ subsecvente.cpp:79:21: error: '__int128_t' was not declared in this scope powP[i] = ((__int128_t)powP[i - 1] * P) % M; ^ subsecvente.cpp:79:32: error: expected ')' before 'powP' powP[i] = ((__int128_t)powP[i - 1] * P) % M; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Subsecvente 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ă.