ZOJ 1926 Gessing Game

984 ワード

転送ゲート:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1926
タイトル:2人は数字を当てています。1~10の中の一つの推測の数に対して、Stonは「too high」、「too low」、or「Righton」を与えます。Stnが嘘を与えたら、Stn is dishonetを出力します。そうでなければStn may be honessを出力します。 例はすべてナイトで終了します。
注意範囲が狭い時に入力するxは現在の範囲内にあるべきです。区間が拡大してWAになります。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char action[32];
int main()
{
	int x;
	int low=0,high=11;

	bool ok=true;
	while(scanf("%d",&x),x)
	{
		//getchar();
		gets(action);
		//cout<<action<<endl;

		if(strcmp(action,"too high")==0 && x<high )
			high=x;
		else if(strcmp(action,"too low")==0 && x>low)
			low=x;
		else if(strcmp(action,"right on")==0)
		{
			if(x<high && x>low )
				printf("Stan may be honest
"); else printf("Stan is dishonest
"); low=0; high=11; } } }