#2454
bsrec
Fie un vector v
sortat crescător cu N
elemente naturale nenule distincte pe care nu le cunoaştem, dar pe care ne propunem să le determinăm. Având la dispoziţie acest vector v
, cu ajutorul următorului algoritm de căutare binară putem răspunde la queryuri de forma: Dându-se un număr X
şi un interval [a, b]
se cere să se determine cel mai mic element mai mare decât X
aflat în intervalul determinat de indicii a
şi b
, interval din vectorul v
. Se cunosc paşii pe care algoritmul de cautare binară i-a urmat pentru diferite valori ale tripletului (X, a, b)
.
Dându-se N
(lungimea vectorului), Q
(numărul de query-uri apelate) şi cele Q
query-uri, să se determine vectorul iniţial. Dacă există mai multe soluţii se va afişa soluţia minim lexicografică. Dacă nu există soluţie se va afişa valoarea -1
.
ONI 2018 clasa a IX-a
Problema | bsrec | Operații I/O |
bsrec.in /bsrec.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
Id soluție | #53497741 | Utilizator | |
Fișier | bsrec.cpp | Dimensiune | 2.65 KB |
Data încărcării | 02 Noiembrie 2024, 23:42 | Scor / rezultat | Eroare de compilare |
bsrec.cpp: In function 'bool processQueries(int, int, std::vector<std::vector<std::pair<int, int> > >&, std::vector<int>&)': bsrec.cpp:13:33: error: request for member 'first' in '(& query)->std::vector<_Tp, _Alloc>::operator[]<std::pair<int, int>, std::allocator<std::pair<int, int> > >(0u).std::pair<int, int>::second', which is of non-class type 'const int' int a = query[0].second.first; ^ bsrec.cpp:14:33: error: request for member 'second' in '(& query)->std::vector<_Tp, _Alloc>::operator[]<std::pair<int, int>, std::allocator<std::pair<int, int> > >(0u).std::pair<int, int>::second', which is of non-class type 'const int' int b = query[0].second.second; ^ bsrec.cpp: In function 'int main()': bsrec.cpp:65:45: error: no matching function for call to 'std::vector<std::pair<int, int> >::push_back(<brace-enclosed initializer list>)' queries[i].push_back({X, {0, 0}}); ^ bsrec.cpp:65:45: note: candidates are: In file included from /usr/include/c++/4.8/vector:64:0, from bsrec.cpp:2: /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>] push_back(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<int, int>&}' /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>] push_back(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}' bsrec.cpp:70:42: error: cannot convert '<brace-enclosed initializer list>' to 'int' in assignment queries[i][0].second = {st, dr}; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema bsrec 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ă.