Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | cbinteractiv.in, cbinteractiv.out | Sursă | ad-hoc |
Autor | Arhiva Educationala | Adăugată de | Alex Luchianov •AlexandruLuchianov1 |
Timp execuţie pe test | 0.2 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Cbinteractiv
Se da un numar N si interactorul are un numar ascuns, K de la 1 la N pe care voi trebuie sa il gasiti.
Puteti intreba de un numar X iar interactorul va va spune daca acesta este mai mare sau egal decat K.
Interactiune
Initial se citeste din stdin numarul N.
Programul vostru are voie sa puna query-uri scriind in standard output:
- "" reprezentand intrebarea.
Dupa fiecare astfel de query interactorul va raspunde in stdin cu un numar din multimea :
- "0" daca K > X
- "1" daca K ≤ X
- "-1" daca query-ul este invalid, trebuie sa inchideti programul dupa ce primiti acest verdict. Un query este considerat valid daca 1 ≤ X ≤ N
Dupa ce ati aflat numarul K afisati "" si terminati programul.
Dupa fiecare query, inclusiv cel final trebuie sa afisati '\n' si sa dati flush la standard output. Pentru a da flush va puteti folosi de urmatorul tabel.
C/C++ | Pascal | Python | Java | Rust |
---|---|---|---|---|
fflush(stdout) sau cout.flush() | flush(output) | sys.stdout.flush() | System.out.flush() | io::stdout().flush().unwrap(); |
Restricţii
- 1 ≤ N ≤ 10^9
- Pentru 30% din teste N ≤ 500
Punctare
Daca numarul gasit de voi este diferit de K, punctajul pe acel test va fi 0.
Altfel, punctajul vostru va fi decis in functie de Q numarul de queryuri facute de programul vostru:
- Q ≤ 32, 100% din punctajul pe acel test.
- Q ≤ 500, 30% din punctajul pe acel test.
- Q > 500, 0% din punctajul pe acel test.
Exemplu
stdin | stdout | Explicatie |
---|---|---|
10 | | Se citeste N |
| ? 5 | Query cu X = 5 |
1 | | Se raspunde ca K <= X |
| ? 4 | Query cu X = 4 |
0 | | Se raspunde ca K > X |
| ! 5 | Programul a descoperit valoarea lui K si raspunde. |