查找数字
Attention
本题是一道交互试题,提交时请 复制完整交互库代码到你的代码上方 再进行提交。
请不要修改交互库的任何代码 ,以免导致测试结果错误。
交互库代码和函数代码在最下方。
建议您直接在函数代码里进行编码,然后把函数代码区块粘贴在交互库代码的最下方,再提交完整代码。
Description
找出系统的随机数x。
Task
你需要编写一个函数find_x(),以确定这个数x。
find_x()函数原型为
最后请保证x存上了你的答案 再调用
void find_x(int &x);
return;
返回上一层函数
你可以调用的函数有
如果n比系统生成的数大则返回1;
int judge(int n);
如果n比系统生成的数小则返回-1;
如果n等于系统生成的数则返回0。
```
Format
Input
测评库只会读入一个整数,表示子任务编号
Output
测评库会根据你的函数运行结果输出不一样的结果。
由于在OJ判题,出现Time Exceeded表示函数调用次数超限;
出现Wrong Answer表明您的x未存上正确答案。
Data range
子任务编号 保证系统生成数的范围 jugde()函数调用次数不得超过 分值
子任务1 0 ~ 29 30次 10
子任务2 0 ~ 100 30次 30
子任务3 0 ~ 1073741823 30次 60
对于每个子任务会有多组数据测试,只有当您的代码通过了子任务X的全部测试点才可以获得该子任务的分值。
不过请您放心的是,每开始一组新的测试数据会从今开始统计judge()的调用次数。
Limitation
1s, 128MB for each test case.
交互库代码
/*请不要修改交互库的任何代码,以免导致判题结果错误*/
#include<cstdio>
#include<algorithm>
#include<ctime>
#include<cstdlib>
//#include<windows.h>
#define TIME
//#define FILE
#define MAXN 15
using namespace std;
void find_x(int &x);
int judge(int n);
int _id,_T,_c,_t;
int range[MAXN];
bool _f1 = false,_f2 = false;
void Solve() {
_c = (rand()*rand())%range[_id];
_c = (rand()*_c)%range[_id];
_c = (rand()*_c+rand())%range[_id];
_c = _c>0?_c:-_c;
int _x = -1;
find_x(_x);
if(_x != _c) {
_f1 = true;
}
if(_t > 30) {
_f2 = true;
}
return;
}
int judge(int _n) {
_t++;
if(_n == _c)
return 0;
return _n>_c?1:-1;
}
void in() {
range[0] = 10;
range[1] = 101;
range[2] = 1073741824;
scanf("%d",&_id);
return;
}
int main() {
#ifdef TIME
srand(time(NULL));
#endif
#ifdef FILE
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
in();
_T = 100;
while(_T--) {
_t = 0;
Solve();
if(_f1) {
puts("Wrong Answer!");
exit(0);
}
if(_f2) {
while(1) {
puts("Time Exceeded!");
}
puts("Time Exceeded!");
exit(0);
}
}
puts("Accepted!");
return 0;
}
函数
void find_x(int &x) {
//Please write the code below.
return;
}
信息
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 9
- 已通过
- 1
- 通过率
- 11%
- 上传者