Dragon

Time limit: 1s Memory limit: 64MB Input: dragon.in Output: dragon.out

Această este o problema interactivă!

Radu Dragonul se pregătește de meciul contra Belgiei. Acesta vrea să afle numărul NN de pe tricoul adversarului sau direct, Lakaka. Domnul antrenor Fisu' lu' Tasu', care știe numărul temutului atacant belgian, vrea să îi dea o mâna de ajutor, procesul constând în mai mulți pași. La fiecare pas, Radu vine cu o foaie pe care scrie maxim 5 numere, iar Fisu' îi va spune care dintre ele sunt divizori ai numărului căutat. Deoarece timpul este limitat, Radu vrea să fie pregătit de meci într-un număr cât mai mic de pași. Între timp, federația de fotbal a Belgiei a anunțat că toți jucătorii lor vor avea numere pe tricou cu divizorii primi din mulțimea 2,3,5,7,112, 3, 5, 7, 11 și cuprinse între 11 și 1018{10^{18}}

Protocol de Interacțiune

Va trebui să scrieți un program (dragon.cpp) care implementează următoarea funcție:

long long solve();

Ea va trebui returneze numărul căutat de Radu

Puteți să va ajutați de această funcție( care reprezintă unul dintre pași ). atenție! vectorul a trebuie să aibă lungimea maxim 5

vector<bool> ask( vector<long long> a );

Trebuie să includeți "dragon.h"
Concurentul NU va avea în program funcția main!

Testare Locală

Pentru a testa mai ușor programul aveți la atașamente grader.cpp și dragon.h citirea se face din fișierul dragon.in (numărul NN) și se afișează în dragon.out (răspunsul pe care îl da programul vostru și numărul de apelari ale funcției ask).

Restricțîi și precizări

  • 1N,1 \leq N, numerele scrise de Radu pe foaie 1018\leq 10^{18} ;

Punctare

  • userQ = numărul de query-uri făcute de programul vostru, bestQ = numărul de query-uri făcute de sursă oficială;
  • Dacă funcția returnează un număr greșit se vor acorda 00 puncte;
  • Dacă funcția returnează numărul corect punctajul va fi calculat după formula 1(1(bestQ/userQ)0.65)1 - (1 - (bestQ / userQ) ^ {0.65}).

Log in or sign up to be able to send submissions!