猜数字

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3373    Accepted Submission(s): 1975

Problem Description
猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。

如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会告
诉玩家猜对了2个数字,其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
现在给你一段gameboy与计算机的对话过程,你的任务是根据这段对话确定这个四位数是什么。
 
Input

入数据有多组。每组的第一行为一个正整数N(1<=N<=100),表示在这段对话中共有N次问答。在接下来的N行中,每行三个整数
A,B,C。gameboy猜这个四位数为A,然后计算机回答猜对了B个数字,其中C个在正确的位置上。当N=0时,输入数据结束。
 
Output
每组输入数据对应一行输出。如果根据这段对话能确定这个四位数,则输出这个四位数,若不能,则输出"Not sure"。
 
Sample Input
6
4815 2 1
5716 1 0
7842 1 0
4901 0 0
8585 3 3
8555 3 2
2
4815 0 0
2999 3 3
0
 
Sample Output
3585
Not sure
知识点:暴力枚举
难点:判断计算机回答猜对了B个数字用到标记数组。
 #include<cstdlib>
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int d[],e[],vis[];
int t,cnt1,cnt2,cnt3,temp;
struct Num
{
int a,b,c;
};
Num num[];
bool judge(int n,Num k)
{
memset(vis,,sizeof(vis));
d[]=n/;
d[]=n/%;
d[]=n%/;
d[]=n%;
e[]=k.a/;
e[]=k.a/%;
e[]=k.a%/;
e[]=k.a%;
for(int i=;i<;i++)
if(e[i]==d[i])
cnt1++;
if(cnt1==k.c)
{
for(int i=;i<;i++)
{
for(int j=;j<;j++)
if(d[i]==e[j]&&!vis[j])
{
vis[j]=;
cnt2++;
break;
}
}
}
else
return false;
if(cnt2==k.b)
return true;
else
return false;
}
int main()
{
while(~scanf("%d",&t))
{
if(t==)
break;
for(int i=;i<t;i++)
scanf("%d%d%d",&num[i].a,&num[i].b,&num[i].c);
cnt3=;
//int flag=0;
bool flag=true;
for(int i=;i<=;i++)
{
for(int j=;j<t;j++)
{
cnt1=cnt2=;
flag=judge(i,num[j]);
if(!flag)break;
}
if(flag)
{
cnt3++;
temp=i;
}
}
if(cnt3!=)
{
printf("Not sure\n");
}
else
printf("%d\n",temp); } return ;
}
/*6
4815 2 1
5716 1 0
7842 1 0
4901 0 0
8585 3 3
8555 3 2
2
4815 0 0
2999 3 3
*/

最新文章

  1. hiho一下123周 后缀数组四&#183;重复旋律
  2. 友盟错误日志分析(转自:COCOACHINA shemy )
  3. 个人阅读作业Week7
  4. linux awk 一看就懂
  5. [接口服务] Jersey Rest Demo
  6. php 判断table 是否存在 根据返回值继续下一步的操作
  7. 实体框架 (EF) 入门 =&gt; 六、性能注意事项
  8. (转)Linux上的Shebang符号(#!)
  9. shell 脚本中 命令
  10. 编译安装zabbix
  11. [C#] 使用 StackExchange.Redis 封装属于自己的 Helper
  12. Java canlendar task
  13. tomcat 优化建议
  14. 用 Python 写一个多进程兼容的 TimedRotatingFileHandler
  15. 7.13python多进程
  16. css中伪类与伪元素的区别
  17. 使用terraform-provider-s3 操作minio
  18. React Native创建一个APP
  19. ElasticSearch入门 第三篇:索引
  20. 用 bottle.py 写了个简单的升级包上传

热门文章

  1. OpenWrt刷机
  2. DBA 经典面试题(5)
  3. 【转载】laravel的MVC
  4. [RxJS] Reactive Programming - Why choose RxJS?
  5. thinkphp框架的路径问题 - 总结
  6. 在Docker中运行torch版的neural style
  7. 7. 稀疏表示之OMP,SOMP算法及openCV实现
  8. WIN7系统JavaEE(java+tomcat7+Eclipse)环境配
  9. CDMA电信短信猫支持189等电信号码可二次开发
  10. 0118——UILabel和导入字体