Logo Quest Online Judge

QOJ

时间限制:1 s 空间限制:256 MB

#2. Guess Number

统计

这是一道交互题

Description

小 E 和 小 L 正在玩一个猜数字游戏。

小 E 会在心中想一个数字 $x$,这个数字在 $l$ 到 $r$ 的范围内,小 E 会告诉小 L 这个范围。

小 L 可以向小 E 询问数字 $q$ 是不是他心中所想的数字。注意,如果小 L 问小 E 太多次的话,小 E 心情会逐渐变差。

而你的得分个小 E 的心情相关。

Implementation Details

你不需要,也不应该实现主函数,你只需要实现下列的函数:

  • int game_begin(int l, int r)

你可以通过调用下面的函数来向交互库发出询问:

  • bool guess(int x)

Implementation Method

本题仅支持C++语言评测。

选手下发文件中已经提供了一个sample_game.cpp,你可以在其基础上答题,但这不是必要的。

请确保你的程序开头有#include "grader.h".

你需要实现的函数game_begin的接口如下:

int game_begin(int l, int r)

你可以调用的函数的接口如下:

bool guess(int x)

How to Test Your Program

1、你需要在本题的目录下使用如下的命令编译得到可执行程序:

g++ grader.cpp problem.cpp -o problem -O2 -std=c++11

2、对于编译得到的可执行文件,其将从标准输入中读取一下格式的数据:

第一行两个正整数l, r,意义如题面所示

3、读入完成之后,交互库将调用函数game_begin恰好一次,用输入的数据测试你的函数。你的函数正确返回后,交互库会判断你的答案是否正确,若正确则会输出 Correct 和交互函数调用次数相关信息,否则会输出相应的错误信息

Constraints

Subtask 1 ($20 pts$): $1 \leq l, r \leq 100, times \leq 33$

Subtask 2 ($30 pts$): $1 \leq l, r \leq 10^4, times \leq 1999$

Subtask 3 ($50 pts$): $1 \leq l, r \leq 10^6, times \leq 124999$