#3757
Se dau N cuvinte formate doar din primele K litere mici ale alfabetului englez și un șir xi de M numere naturale. Trebuie să se formeze M cuvinte astfel încât oricare cuvânt i (1 ≤ i ≤ M) să respecte
următoarele proprietăți:
xiK litere mici ale alfabetului englezcuv din cele N date inițial sau din celelalte M - 1 nou formate astfel încât cuv să fie prefix al cuvântului icuv din cele N date inițial sau din celelalte M - 1 nou formate astfel încât cuvântul i să fie prefix al lui cuvSă se calculeze numărul de moduri de a forma M cuvinte care respectă proprietățile de mai sus. Două moduri se consideră diferite dacă există cel puțin o poziție i pentru care al i-lea cuvânt diferă. Deoarece acest număr poate fi foarte mare, se va afișa doar restul său la împărțirea cu 1.000.000.007.
ONSEPI, 2021, clasele XI-XII
| Problema | Cuvinte10 | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 512 MB
/
Stivă 128 MB
|
| Id soluție | #35750204 | Utilizator | |
| Fișier | cuvinte10.cpp | Dimensiune | 1.97 KB |
| Data încărcării | 21 Martie 2022, 17:17 | Scor/rezultat | Eroare de compilare |
cuvinte10.cpp: In function 'void insertTrie(Trie*, int, char*)': cuvinte10.cpp:32:15: warning: NULL used in arithmetic [-Wpointer-arith] if (*s == NULL) { ^ cuvinte10.cpp: In function 'int main()': cuvinte10.cpp:58:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (s[i].size() > lenmax) ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from cuvinte10.cpp:3: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = std::basic_string<char>*; _Tp = std::basic_string<char>; _Compare = bool (*)(std::basic_string<char>&, std::basic_string<char>&)]': /usr/include/c++/4.8/bits/stl_algo.h:2296:78: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::basic_string<char>*; _Compare = bool (*)(std::basic_string<char>&, std::basic_string<char>&)]' /usr/include/c++/4.8/bits/stl_algo.h:2337:62: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = std::basic_string<char>*; _Size = int; _Compare = bool (*)(std::basic_string<char>&, std::basic_string<char>&)]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = std::basic_string<char>*; _Compare = bool (*)(std::basic_string<char>&, std::basic_string<char>&)]' cuvinte10.cpp:62:32: required from here /usr/include/c++/4.8/bits/stl_algo.h:2263:35: error: invalid initialization of reference of type 'std::basic_string<char>&' from expression of type 'const std::basic_string<char>' while (__comp(*__first, __pivot)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2266:34: error: invalid initialization of reference of type 'std::basic_string<char>&' from expression of type 'const std::basic_string<char>' while (__comp(__pivot, *__last)) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cuvinte10 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ă.