您的位置:首页 > 其它

hdu 1172 猜数字(water)

2013-08-02 14:59 162 查看
天热,可是俺咋还是暴力呢!嘿嘿····,暴力过的!

大神莫笑···!囧··············

天热,难免口渴,故水一题!

#include<stdio.h>

#include<string.h>

int a[200][5],b[200],c[200];

int n;

int p(int t)

{

int i,j,w[10],flag1[10],flag2[10],s1,s2,q;

w[1]=t%10;t/=10;w[2]=t%10;t/=10;

w[3]=t%10;t/=10;w[4]=t%10;

s1=0;s2=0;

memset(flag1,0,sizeof(flag1));

memset(flag2,0,sizeof(flag2));

for(i=1;i<=n;i++)

{

for(j=1;j<=4;j++)

{

if(w[j]==a[i][j])

s1++;

for(q=1;q<=4;q++)

if(w[q]==a[i][j]&&flag1[j]==0&&flag2[q]==0)

{

flag1[j]=1;

flag2[q]=1;

s2++;

}

}

memset(flag1,0,sizeof(flag1));

memset(flag2,0,sizeof(flag2));

if(s1!=c[i]||s2!=b[i])

break;

s1=0;

s2=0;

}

if(i==n+1)

return 1;

return 0;

}

int main()

{

int m,i,r,ans;

while(scanf("%d",&n),n)

{

for(i=1;i<=n;i++)

{

scanf("%d%d%d",&m,&b[i],&c[i]);

a[i][1]=m%10;m/=10;a[i][2]=m%10;m/=10;

a[i][3]=m%10;m/=10;a[i][4]=m%10;

}

r=0;

for(i=1000;i<=9999;i++)

if(p(i)==1)

{

ans=i;

r++;

}

if(r==1)

printf("%d\n",ans);

else

printf("Not sure\n");

}

return 0;

}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1172
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: