Description
Một mảng nhị phân ẩn có độ dài . Bạn được cho một số và cần tìm vị trí của số thứ khi duyệt từ trái sang phải.
Truy vấn ? l r trả tổng các bit trong đoạn , tức số lượng bit của đoạn. Đây là bản easy: , nên chỉ có một giá trị và việc số vừa tìm được đổi thành sau đáp án không ảnh hưởng đến phiên.
Trạng thái ẩn được bộ tương tác chọn trước khi phiên bắt đầu và không thay đổi trong suốt phiên. Chương trình không được đọc trực tiếp trạng thái này; mọi thông tin chỉ đến từ các phản hồi hợp lệ theo giao thức bên dưới.
Interaction
Đầu phiên đọc và , sau đó đọc . Truy vấn có dạng ? l r với . Đáp án có dạng ! x, là vị trí số thứ . Phải flush sau mỗi dòng.
Mỗi truy vấn hợp lệ nhận tổng các bit +...+. Có tối đa truy vấn; đáp án không tính vào ngân sách.
Đáp án đúng nhận AC; đáp án sai nhận WA. Truy vấn sai hoặc vượt ngân sách trả /lỗi giao thức và lời giải phải dừng ngay. Khi nhận hoặc khi luồng vào kết thúc bất thường, chương trình phải dừng ngay. Sau mỗi dòng gửi, chương trình phải đẩy dữ liệu khỏi bộ đệm, chẳng hạn bằng endl hoặc cout.flush() trong C++.
Constraints
- và . Mảng ẩn luôn có ít nhất số tại thời điểm yêu cầu. Có tối đa truy vấn.
Scoring
- Subtask ( số điểm): mười hidden session đầu dùng kích thước nhỏ, tập trung kiểm tra mô hình giao thức và các trường hợp biên cơ bản.
- Subtask ( số điểm): không có giới hạn bổ sung; mười hidden session còn lại dùng toàn bộ giới hạn, trong đó các session cuối kiểm tra cận trên của những đại lượng kích thước có hiệu lực.
- Mỗi hidden session có giá trị điểm. Một session chỉ được tính điểm khi toàn bộ cuộc hội thoại kết thúc với verdict AC.
Example interaction
Mẫu E01
Bộ tương tác -> Lời giải: 8 1
Bộ tương tác -> Lời giải: 3
Lời giải -> Bộ tương tác: ? 1 4
Bộ tương tác -> Lời giải: 2
Lời giải -> Bộ tương tác: ? 1 6
Bộ tương tác -> Lời giải: 3
Lời giải -> Bộ tương tác: ? 1 5
Bộ tương tác -> Lời giải: 3
Lời giải -> Bộ tương tác: ! 6
Kết quả: AC
Giải thích: Mảng mẫu có các số 0 ở vị trí 2, 4, 6 và 7. Các truy vấn prefix cho biết prefix dài 4 mới có hai số 0, còn prefix dài 6 có ba số 0; lower_bound vì thế trả vị trí 6.