#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 | #50353221 | Utilizator | |
Fișier | bsrec.cpp | Dimensiune | 2.03 KB |
Data încărcării | 05 Aprilie 2024, 17:19 | Scor / rezultat | Eroare de compilare |
bsrec.cpp: In function 'int for_every_sir()': bsrec.cpp:65:11: error: no match for 'operator=' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<query> >::value_type {aka query}' and '<brace-enclosed initializer list>') QU[0] = {-1, 0, {0, 0}, {0, 0}}; ^ bsrec.cpp:65:11: note: candidates are: bsrec.cpp:16:8: note: query& query::operator=(const query&) struct query{ ^ bsrec.cpp:16:8: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const query&' bsrec.cpp:16:8: note: query& query::operator=(query&&) bsrec.cpp:16:8: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'query&&'
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ă.