#2382
mesaje
După multe năzbâtii făcute împreună, Alex şi Cipri nu mai au voie să se întâlnească. Alex – strategul echipei – a plănuit o nouă poznă şi a decis să-i transmită prietenului său planul de luptă, constând din anumite cuvinte dintr-un mesaj m[0]
. Pentru a nu fi descoperiți, i-a trimis ulterior mai multe mesaje m[1]
, m[2]
, … lui Cipri, acesta trebuind să le descifreze folosind convenția secretă stabilită la începutul prieteniei lor și să “acționeze”. Fiecare mesaj m[i]
este format din mai multe cuvinte, separate prin câte un spațiu, numerotate cu valori consecutive, începând de la 1
.
Pentru a afla planul, Cipri trebuie să găsească cea mai mare valoare i ≥ 0
astfel încât mesajele m[i]
și m[0]
să conțină cel puțin un cuvânt identic având același număr de ordine în ambele mesaje. Din m[0]
se păstrează toate cuvintele care se găsesc și în mesajul m[i]
cu același număr de ordine ca în m[0]
.
Cuvintele păstrate trebuie ordonate în ordine descrescătoare lexicografică a puterii lor. Puterea cuvântului cu numărul de ordine j
în m[0]
este egală cu șirul
ordonat descrescător al indicilor mesajelor în care apare cu același număr de ordine ca în m[0]
. Astfel, un cuvânt care a apărut cu numărul de ordine 2
în mesajele m[0]
, m[6]
și m[8]
are puterea {8,6,0}
. Dacă două cuvinte au aceeași putere, vor rămâne în ordinea din mesajul inițial. Lui Cipri nu i-a mai rămas decât să citească fiecare cuvânt de la dreapta la stânga şi a descifrat tot planul de luptă Cunoscând mesajele transmise de Alex, ajutaţi-l pe Cipri să descifreze planul de luptă conform convenţiei secrete.
ONI 2010
Problema | mesaje | Operații I/O |
mesaje.in /mesaje.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
Id soluție | #47668260 | Utilizator | |
Fișier | mesaje.cpp | Dimensiune | 2.19 KB |
Data încărcării | 21 Decembrie 2023, 20:09 | Scor / rezultat | Eroare de compilare |
In file included from /usr/include/c++/4.8/algorithm:62:0, from mesaje.cpp:4: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >*, std::vector<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > > > >; _Tp = std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >; _Compare = bool (*)(std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&, std::pair<int, std::pair<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 = __gnu_cxx::__normal_iterator<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >*, std::vector<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > > > >; _Compare = bool (*)(std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&, std::pair<int, std::pair<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 = __gnu_cxx::__normal_iterator<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >*, std::vector<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > > > >; _Size = int; _Compare = bool (*)(std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&, std::pair<int, std::pair<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 = __gnu_cxx::__normal_iterator<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >*, std::vector<std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > > > >; _Compare = bool (*)(std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&, std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&)]' mesaje.cpp:88:31: required from here /usr/include/c++/4.8/bits/stl_algo.h:2263:35: error: invalid initialization of reference of type 'std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&' from expression of type 'const std::pair<int, std::pair<std::basic_string<char>, 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::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >&' from expression of type 'const std::pair<int, std::pair<std::basic_string<char>, std::basic_string<char> > >' while (__comp(__pivot, *__last)) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema mesaje 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ă.