问题描述
Xiaoz提前回到学校,他们寝室只有他和另一个兄弟,由于晚上无事可做,于是Xiaoz想出来了一个很好的游戏--要他兄弟猜他身上有多少钱。猜的方法是:他兄弟说一个数,由Xiaoz判断。如果Xiaoz认为自己没有那么多钱,会回答"too high",如果Xiaoz认为比这多,则回答"too low";如果他认为游戏结束时,会说"right on"。每次游戏结束,由他兄弟判断是不是Xiaoz说谎。如果说谎,则输出"Xiaoz is dishonest", 否则输出"Xiaoz is honest"。
输入
有多组数据,输入一个整数 n(0<n<10 000) . 接下来的一行是( too high, too low, right on) 中的一个。如果是 right on,则这组输入结束。
输出
Xiaoz没有说谎,则输出"Xiaoz is honest", 否则输出"Xiaoz is dishonest", 每组输出占一行。
样例输入
10
too high
3
too low
4
too high
2
right on
5
too low
7
too high
6
right on
样例输出
Xiaoz is dishonest
Xiaoz may be honest
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
//#define INF 0xfffff
using namespace std;
int main()
{
int n;
int max,min;
max=100;
min=0;
char a[20],b[20];
while(cin>>n)
{
while(1)
{
cin>>a>>b;
//cout<<a<<b;
if(a[0]=='t')
{
if(b[0]=='h')
{
if(max>n)
{
max=n;
// cout<<max<<endl;
}
}
else
{
if(min<n)
{
min=n;
// cout<<min<<endl;
}
}
// cout<<max<<" "<<min<<endl;
}
else
{
if((n<max)&&(n>min))
{
// cout<<max<<" "<<min<<" "<<n<<endl;
cout<<"Xiaoz may be honest"<<endl;
min=0;
max=100;
break;
}
else
{
cout<<"Xiaoz is dishonest"<<endl;
min=0;
max=100;
break;
}
}
cin>>n;
}
}
return 0;
}