码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 10530 - Guessing Game

时间:2015-02-08 09:05:10      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

题目:两个人玩猜数字游戏(1~10),A选择一个数字,B不断报数,A对应说:高、低、对;

            现在B怀疑A作弊,在这个过程中改变数字,他想判断A是否作弊。

分析:简单题。可以把所有的序列存起来,然后比较判断是否存在矛盾即可。

            这里利用一个数组做10个数字的标记;

            如果A说小,就把所有小于等于当前数字n的数字标记成小(-1);

            如果A说大,就把所有小于等于当前数字n的数字标记成大(1);

            标记过程中判断是否有矛盾即可(已有标记的值和新标记是否相同);

            最后判断,所猜数字是否被标记即可。

说明:(⊙v⊙)。

#include <cstdlib>
#include <cstring>
#include <cstdio>

int  used[11];
char buf1[9],buf2[9];

int main()
{
	int n;
	while (scanf("%d",&n) && n) {
		memset(used, 0, sizeof(used));
		scanf("%s%s",buf1,buf2);
		int flag = 0;
		while (buf1[0] != 'r') {
			if (!flag) {
				if (buf2[0] == 'h') {
					for (int i = n ; i <= 10 ; ++ i)
						if (used[i] == -1) flag = 1;
						else used[i] = 1;
				}else {
					for (int i = n ; i >= 1 ; -- i)
						if (used[i] == 1) flag = 1;
						else used[i] = -1;
				}
			}
			scanf("%d%s%s",&n,buf1,buf2);
		}
		if (used[n]) flag = 1;
		if (!flag) 
			printf("Stan may be honest\n");
		else printf("Stan is dishonest\n");
	}
    return 0;
}


UVa 10530 - Guessing Game

标签:

原文地址:http://blog.csdn.net/mobius_strip/article/details/43635025

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!