IOI 2010 - Hotter Colder

Xem PDF



Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 2500 (p) Thời gian: 10.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Jack và Jill chơi trò Nóng hơn, Lạnh hơn. Jill bí mật chọn một số nguyên từ 1 đến N, còn Jack liên tục đoán số đó.

Mỗi giá trị Jack đoán phải nằm trong đoạn từ 1 đến N. Với lần đoán đầu tiên, Jill luôn trả lời bằng nhau. Từ lần đoán thứ hai trở đi, Jill trả lời:

  • nóng hơn nếu lần đoán hiện tại gần số bí mật hơn lần đoán trước;
  • lạnh hơn nếu lần đoán hiện tại xa số bí mật hơn lần đoán trước;
  • bằng nhau nếu hai khoảng cách bằng nhau.

Bạn cần cài đặt hàm HC(N) đóng vai Jack. Hàm này có thể gọi Guess(G) nhiều lần, với 1 <= G <= N. Hàm Guess trả về 1, -1 hoặc 0, lần lượt tương ứng với nóng hơn, lạnh hơnbằng nhau. Hàm HC phải trả về đúng số Jill đã chọn.

Ví dụ

Giả sử N = 5 và Jill chọn số 2:

Lời gọi Giá trị trả về Giải thích
Guess(5) 0 Lần gọi đầu tiên
Guess(3) 1 Nóng hơn
Guess(4) -1 Lạnh hơn
Guess(1) 1 Nóng hơn
Guess(3) 0 Hai khoảng cách bằng nhau

Sau các lời gọi trên, HC phải trả về 2.

Các nhóm điểm

Nhóm Điểm Giới hạn
1 25 1 <= N <= 500; không quá 500 lời gọi Guess; tối đa 125250 lần gọi HC.
2 25 1 <= N <= 500; không quá 18 lời gọi Guess; tối đa 125250 lần gọi HC.
3 25 1 <= N <= 500; không quá 16 lời gọi Guess; tối đa 125250 lần gọi HC.
4 tối đa 25 1 <= N <= 500000000; tối đa 1000000 lần gọi HC; điểm phụ thuộc số lời gọi như dưới đây.

Trong nhóm 4, gọi W là số nguyên lớn nhất thỏa mãn

\[ 2^W \le 3N. \]

Với mỗi lần gọi HC, đặt q là số lần gọi Guess. Điểm của nhóm được xác định bởi trường hợp tệ nhất:

  • 0 điểm nếu q >= 2W;
  • \(25\alpha\) điểm nếu \(0 < \alpha < 1\) là giá trị lớn nhất sao cho \(q \le 2W - \alpha W\);
  • 25 điểm nếu q <= W.

Mọi biến trạng thái của HC phải được khởi tạo lại cho từng lần gọi.

Chi tiết cài đặt

Bạn cần nộp một tệp C++ cài đặt:

C++
int HC(int N);

Tệp của bạn được biên dịch cùng hottercolder.h, trong đó có khai báo:

C++
int Guess(int G);

Chương trình của bạn không được định nghĩa hàm main.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: