Submit solution
Points:
100.00 (partial)
Time limit:
1.0s
Memory limit:
64M
Input:
stdin
Output:
stdout
Author:
Suggester:
Problem type
Allowed languages
C++, Pascal, PyPy, Python
Đây là bài toán giao tiếp với máy chấm (Interactive problem)
Thuận có một con số ~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~. Thuận 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 Thuận nghe số đó. Thuận 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á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
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! |
Comments
trai = 1 phai = 2000000000
while trai <= phai: doan = (trai + phai) // 2 print(doan, flush=True)
chết mai thi (16/4/2025) mà trúng bài này là chết
code PY:
code C++:
Hò khét . khó quáááááááá
mai thi
scratch làm sao làm đc
alo
sĩ
bài này sao giải bắng scratch v
tỉ lệ đoán đúng là 10 ^ 9 chia 2 "30 lần" Ai nói cho tôi code này sao ac 1 test v?
bg = 2000000000 sm = 1 step = "BIGGER" while True: if step = "BIGGER": bg = int(bg / 2 // 1) if step = "SMALLER": bg = int(bg * 1.5 // 1) print(bg) m = str(input()) if m == "HOLA": break elif m == "SMALLER": step = "SMALLER" else: step = "BIGGER"
Tỷ lệ đoán đúng là 1/2000000000 mà được đoán có 30 lần thì làm sao mà đoán được
tui ko b
NAH,I WIN
ai biết lệnh nào trong python giống khối repeat until trong scratch không
while á bạn
cú pháp:
while condition: statements [break]
cảm ơn bạn👍🏻🙏🏻
bài này dễ nhưng... tỷ lệ là 1/2000000000 mà chỉ cho 30 câu thì đoán kiểu j
dễ mà: giải: l = 1 h = 2 * 10**9
while l <= h: m = (l + h) // 2 print(m, flush=True)
python 3
sai rồi bạn, kiểm tra trước đi rồi mới đăng😅
sai chỗ nào v
đăng ảnh kiểu gì chỉ mình, mình tải lỗi cho🤔
dùng lời nói đi bro
Biên dịch gặp lỗi guessgamecpp.cpp:1:1: error: ‘f’ does not name a type 1 | f = input().strip() | ^
bạn vote mình -1 à
Test case #1: Lỗi khi chạy chương trình (IR) (NameError) [0,061s, 5.82 MB] (0/1) Test case #2: Lỗi khi chạy chương trình (IR) (NameError) [0,079s, 5.78 MB] (0/1) Test case #3: Lỗi khi chạy chương trình (IR) (NameError) [0,020s, 5.95 MB] (0/1) Test case #4: Lỗi khi chạy chương trình (IR) (NameError) [0,054s, 5.92 MB] (0/1) Test case #5: Lỗi khi chạy chương trình (IR) (NameError) [0,038s, 5.84 MB] (0/1)
bài này tịt luôn, chju thật..
bài này dùng hàm random :)) (100% ko hiểu quả)
a=randit.random(1,10)
print(a)
thử đi
tôi bị Invalid Return nha =((
LỜI GIẢI FRSKRT
ai giải thích hộ tôi với, tôi ko hiểu nổi cái đề
Là máy chọn một số ngẫu nhiên từ 1 đến 2000000000=(a). Cho nhập vào từng số, nếu số đó lớn hơn (a) thì nói 'BIGGER', nếu nhỏ hơn a thì nói 'SMALLER', nếu bằng a thì noi 'HOLA'
def Bi(a,b): x=int((a+b)//2) print(x) i=input() if i=="BIGGER": Bi(x,b) elif i=="SMALLER": Bi(a,x) Bi(1,2000000000)
Tôi bị TLE TToTT
bài này dễ... nhưng tại sao các bạn cứ dùng C++?!!!!!
chủ yếu là do thuật thôi, bài này dùng c++ mà thuật yếu thì cũng vậy mà
Xin lỗi nhưng mình không giỏi C++ mà giỏi python 😵
bài này dùng binary search
hello
This comment is hidden due to too much negative feedback. Show it anyway.