| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:大家注意了!有陷阱In Reply To:大家注意了!有陷阱 Posted by:tfaylsh at 2007-12-22 12:52:54 > 1.初始化的时候min=0;max=11;
> 2.if(s2=="high" && to>n)
> if(s2=="low" && from<n)
> 必须把条件都标好啊,如果直接else会有问题,
> 测试数据中可能有垃圾的非"too high""too low""right on"的信息;
> 3.不要用getline;可能有错!
不管初始化为1/10, 0/11都是能过的, 就是判修改min/max规则稍有不同啦。。。
#include <cstdio>
#include <cstring>
#include <map>
#include <cmath>
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <climits>
//#include "Derive.h"
//POJ:2845
using namespace std;
#define EPS 1E-6
#define LEN 50010
#define QUEUELEN 2000
#define P 3.1415927
int main()
{
char response[3][10] = {
"high",
"low",
"on"
};
int number;
char t[10], str[10];
int low, high;
bool start = true, end = false;
bool flag = true;
while(scanf("%d", &number))
{
if(number == 0) break;
scanf("%s%s", t, str);
if(start)
{
start = false;
end = false;
flag = true;
low = 1;
high = 10;
}
if(!strcmp(response[0], str))
{
if(number - 1 < high)
high = number - 1;
if(low > high)
flag = false;
}
if(!strcmp(response[1], str))
{
if(number + 1 > low)
low = number + 1;
if(low > high)
flag = false;
}
if(!strcmp(response[2], str))
{
end = true;
if(number < low || number > high || low > high)
flag = false;
}
if(end)
{
start = true;
if(flag)
printf("Stan may be honest\n");
else printf("Stan is dishonest\n");
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator