Detalii evaluare #35750204

Rezumat problemă

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:

  • Să aibă lungimea xi
  • Să fie format doar din primele K litere mici ale alfabetului englez
  • Să nu existe niciun cuvânt cuv din cele N date inițial sau din celelalte M - 1 nou formate astfel încât cuv să fie prefix al cuvântului i
  • Să nu existe niciun cuvânt 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.

Detalii

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 Costache Radu - Mihai (radu_msk)
Fișier cuvinte10.cpp Dimensiune 1.97 KB
Data încărcării 21 Martie 2022, 17:17 Scor / rezultat Eroare de compilare

Evaluare


Mesaj 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))
                                  ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Cuvinte10 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.