Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Đây là bài toán giao tiếp với máy chấm (Interactive problem)
\(n\) bí mật. Điều duy nhất bạn biết về con số này là \(1 \leq n \leq 2 \times 10^9\). và bạn sẽ chơi một trò chơi như sau: Bạn sẽ được chọn một số bất kỳ và nói cho nghe số đó. sẽ cho bạn biết con số của bạn lớn hơn, nhỏ hơn, hay bằng \(n\). Hãy đoán xem \(n\) là số nào trong không quá \(31\) câu hỏi.
có một con sốCách Thức Giao Tiếp
Mỗi lượt, bạn sẽ in ra một số \(x\) trên một dòng (\(1\leq x \leq 2 \times 10^9\)). Máy tính sẽ đọc \(x\) và in ra màn hình một chuỗi tương ứng với các trường hợp sau:
- "BIGGER" nếu \(n > x\)
- "SMALLER" nếu \(n < x\)
- "HOLA" nếu \(n = x\).
Lưu ý:
- Chuỗi mà máy in ra màn hình không có dấu "
- Nếu các bạn in ra một output không hợp lệ (không phải là một số, số ngoài đoạn \([1, 2 \times 10^9]\) thì nhiều khả năng bị TLE.
- Sau khi in mỗi số, bạn phải xuống dòng (ví dụ in
endl
trong C++) - Khi in ra một dòng, các bạn phải flush output bằng cách
cout.flush
hoặc dùngendl
thay vì\n
Example
Test 1
Con số bí mật trong test này là 5.
Input | Output | Giải thích |
---|---|---|
1 |
Bạn đoán số 1 | |
SMALLER |
Số 1 nhỏ hơn đáp án | |
9 |
Bạn đoán số 9 | |
BIGGER |
Số 9 lớn hơn đáp án | |
5 |
Bạn đoán số 5 | |
HOLA |
Hola! Bạn đã đoán đúng mà chỉ dùng 3 câu hỏi! |
Bình luận
Em tưởng mình nên sài
endl
thay cho'\n'
trong trường hợp này để tránhIdleness Limit Exceed
:vendl mới hay TLE hơn '\n' 😃
Nhưng interative-problem thì
\n
có thểILE
trong khiendl
thì không mà anh :vcứ hỏi mấy ông 12TH đi, chắc mấy ông còn cay vụ endl và '\n' lắm
lmao
endl
gồm cả'\n'
lẫnstd::flush()
nên chậm là đúng :vTrên Codeforces thì phải flush (bằng endl chẳng han). Nhưng bên này thì k cần.
Giờ em mới biết, trước giờ em tưởng interactive luôn phải flush :v Thanks anh