#3757
Cuvinte10
Se dau N
cuvinte formate doar din primele K
litere mici ale alfabetului englez și un șir x
i
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:
x
i
K
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 i
cuv
din cele N
date inițial sau din celelalte M - 1
nou formate astfel încât cuvântul i
să fie prefix al lui cuv
Să 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ă.