Đoán số

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Người đăng:
Dạng bài
Ngôn ngữ cho phép
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à 1n2×109. 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 (1x2×109). 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×109] 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ùng endl 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!

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    lovevsick   đã bình luận 6 ngày trước

    bài này tịt luôn, chju thật..


  • 2
    doandulamtin   đã bình luận 8 ngày trước

    bài này dùng hàm random :)) (100% ko hiểu quả)


    • 1
      nguyenminhtri_2014   đã bình luận 5 ngày trước sửa 2

      a=randit.random(1,10)

      print(a)

      thử đi


      • 0
        25B-372   đã bình luận một ngày trước

        tôi bị Invalid Return nha =((


  • 1
    khang_5c   đã bình luận 12 ngày trước

    LỜI GIẢI FRSKRT


  • 2
    NAN24B_32   đã bình luận 2 tháng trước

    ai giải thích hộ tôi với, tôi ko hiểu nổi cái đề


    • 0
      nguyenminhtri_2014   đã bình luận 3 ngày trước

      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'


  • 3
    tinhoctredtsd   đã bình luận 2 tháng trước

    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)


  • 0
    sb20240044   đã bình luận 2 tháng trước

    Tôi bị TLE TToTT


  • 1
    sb20240044   đã bình luận 2 tháng trước

    bài này dễ... nhưng tại sao các bạn cứ dùng C++?!!!!!


    • 2
      KVMB23A_67   đã bình luận một tháng trướ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à


      • 1
        sb20240044   đã bình luận một tháng trước

        Xin lỗi nhưng mình không giỏi C++ mà giỏi python 😵


  • 1
    KVMB23A_67   đã bình luận 3 tháng trước

    bài này dùng binary search


  • 4
    NguyenHPhong   đã bình luận 3 tháng trước chỉnh sửa

    hello


  • -16
    truongphat   đã bình luận 4 tháng trước

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.