Bunicu zice așa frate... este o vorbă: "Lupu-și schimbă părul, dar tot mănâncă oi." - Bunicu, "Cel mai tare hack"
Cerință
În urma unui flood de la dușmani, Bunicu și-a pierdut cele două portofele undeva pe axa Ox. Pentru a le găsi, Bunicu își va folosi arma secretă: cel mai tare hack.
Dacă Bunicu se află la coordonata și cele două portofele se află la coordonatele , respectiv (, ), atunci cel mai tare hack va calcula suma distanțelor de la Bunicu la cele două portofele (adică ).
Ajutați-l pe Bunicu să își găsească portofelele, folosind cel mai tare hack de cât mai puține ori.
Protocol de interacțiune
Concurentul va trebui să implementeze următoarea funcție:
std::pair<int,int> solve();
Această funcție va returna o pereche de numere întregi (), coordonatele portofelelor pierdute.
Concurentul va putea apela următoarea funcție pentru a vedea suma distanțelor de la Bunicu (care se află la coordonata ) la cele două portofele:
int cel_mai_tare_hack(int x);
Pentru orice apel al acestei funcții, va trebui să respecte . În caz contrar, sursa trimisă va primi verdictul "Invalid query".
Restricții și precizări
- ;
- Trebuie inclus fișierul
cel_mai_tare_hack.h
în sursele trimise. - La "Attachments" se poate găsi grader-ul
lgrader.cpp
, header-ulcel_mai_tare_hack.h
și un exemplu de sursă (cel_mai_tare_hack.cpp
).
Punctare
Notăm cu:
optim
: numărul de apeluri ale funcțieicel_mai_tare_hack
de către sursa comisieiQ
: numărul de apeluri ale funcțieicel_mai_tare_hack
de către sursa concurentului
Dacă punctajul maxim asociat unui test este , atunci o sursă care identifică corect coordonatele portofelelor va primi pe acel test un punctaj egal cu , unde:
- , dacă
- , dacă
- , dacă
- , dacă
- , dacă
- , dacă
- , dacă
- , dacă
Exemplu de interacțiune
- Comisie: citește și
- Comisie:
solve()
- Concurent:
cel_mai_tare_hack(-1)
- Comisie:
3
- Concurent:
cel_mai_tare_hack(-3)
- Comisie:
1
- Concurent:
return {-3,-2}
- Comisie:
OK 2 queries used