//题意比较简单。。就是一个人说1个数,另一个人说太高或者太低。。然后判断这个有没有说谎。。思路是
//如果太高,判断L是不是小于N,小的话,证明说谎,反证也是如此。。如果没有的话更新L和R。、
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
 int n;
 char String[10];
 int l=0,r=11;
 int flag=0;
 while(scanf("%d",&n)!=EOF)
 {
  if(n==0)
   break;
  getchar();
  gets(String);
  int s=strlen(String);
  if(String[s-1]=='n')
  {
   if(n<=l||n>=r)
    flag=1;
   if(flag)
    printf("Stan is dishonest\n");
   else
    printf("Stan may be honest\n");
   flag=0;
   l=0;
   r=11;
  }
  if(String[s-1]=='h')
  {
   if(n<=l)
    flag=1;
   else
   {
    if(n<r)
     r=n;
   }
  }
  if(String[s-1]=='w')
  {
   if(n>=r)
    flag=1;
   else
   {
    if(n>l)
     l=n;
   }
  }
 }
 return 0;
}

posted on 2012-01-30 21:26  →木头←  阅读(165)  评论(0编辑  收藏  举报