TZU2014年省赛个人热身赛1 1197:Number Guessing
2014-03-29 23:50
267 查看
描述
NumberGuessingisacomputergame.First,thecomputerchoosesfourdifferentdigits,youneedtoguessthesefourdigitsinthefewesttimes,foreachguess,thecomputerwillshowajudgementin
theformof"#A#B","#"isanumber0~4."#A"showshowmanydigitsyouguessedwithbothcorrectvalueandposition."#B"showshowmanydigitsyouguessedwithcorrectvalue.Forexample,thecomputerchose1234,andyouguessed6139,thecomputerwillshow
"1A2B"foryouhavenumber"1"correctvaluebutwrongpositionandnumber"3"correctvaluewithcorrectposition.Thusthecomputergivesyouthejudgementof"1A2B".Nowyouhavememorizedthedigitsyouguessedandthejudgementsyougot,youfeellike
youcanfigureoutthecorrectanswer.Lifeisfilledwithwisdom,isn'tit?
输入
Thereareseveraltestcases.Foreachtestcase,thefirstlinecontainsasinglepositiveintegerNindicatesthetimesyoucanguess,thefollowingNlinesistherecordoftheguess,intheform:
#####A#B
Thefirstfournumbersisthenumbersguessed,thenthejudgementsforyourguess.Theinputisterminatedbyanegativeinteger.
输出
Foreachtestcase,outputasinglelinecontainsexactlyfourdigitsthatthecomputerhaschosen.Youmayassumethateachtestcasegivesyouenoughinformation,soyoucanfigure
outthecorrectanswer.
样例输入
样例输出
NumberGuessingisacomputergame.First,thecomputerchoosesfourdifferentdigits,youneedtoguessthesefourdigitsinthefewesttimes,foreachguess,thecomputerwillshowajudgementin
theformof"#A#B","#"isanumber0~4."#A"showshowmanydigitsyouguessedwithbothcorrectvalueandposition."#B"showshowmanydigitsyouguessedwithcorrectvalue.Forexample,thecomputerchose1234,andyouguessed6139,thecomputerwillshow
"1A2B"foryouhavenumber"1"correctvaluebutwrongpositionandnumber"3"correctvaluewithcorrectposition.Thusthecomputergivesyouthejudgementof"1A2B".Nowyouhavememorizedthedigitsyouguessedandthejudgementsyougot,youfeellike
youcanfigureoutthecorrectanswer.Lifeisfilledwithwisdom,isn'tit?
输入
Thereareseveraltestcases.Foreachtestcase,thefirstlinecontainsasinglepositiveintegerNindicatesthetimesyoucanguess,thefollowingNlinesistherecordoftheguess,intheform:
#####A#B
Thefirstfournumbersisthenumbersguessed,thenthejudgementsforyourguess.Theinputisterminatedbyanegativeinteger.
输出
Foreachtestcase,outputasinglelinecontainsexactlyfourdigitsthatthecomputerhaschosen.Youmayassumethateachtestcasegivesyouenoughinformation,soyoucanfigure
outthecorrectanswer.
样例输入
212342A4B12430A4B307323A3B15260A0B45670A2B-1
样例输出
21340734
猜数字,A代表几个数字正确且在正确位置,B为几个大小正确
直接暴力即可
#include<stdio.h>
#include<string.h>
#include<algorithm>
usingnamespacestd;
chars1[10000][10],s2[10000][10];
ints[10];
inthash[10];
intmain()
{
intt,i,j,n,ans;
while(~scanf("%d",&n),n>0)
{
for(i=0;i<n;i++)
scanf("%s%s",s1[i],s2[i]);
for(i=0;i<10000;i++)
{
t=i;
s[3]=t%10;
s[2]=(t/10)%10;
s[1]=(t/100)%10;
s[0]=(t/1000)%10;
if(t/1000>0&&s[0]==s[1]||s[0]==s[2]||s[0]==s[3]||s[1]==s[2]||s[1]==s[3]||s[2]==s[3])
continue;
elseif(t/100>0&&s[1]==s[2]||s[1]==s[3]||s[2]==s[3])
continue;
elseif(t/10>0&&s[2]==s[3])
continue;
intcnt=0;
for(j=0;j<n;j++)
{
inta=0,b=0;
memset(hash,0,sizeof(hash));
hash[s1[j][0]-'0']=hash[s1[j][1]-'0']=hash[s1[j][2]-'0']=hash[s1[j][3]-'0']=1;
for(intk=0;k<4;k++)
{
if(s[k]==s1[j][k]-'0')
a++;
if(hash[s[k]])
b++;
}
if(a==s2[j][0]-'0'&&b==s2[j][2]-'0')
cnt++;
}
if(cnt==n)
{
ans=i;
break;
}
}
printf("%04d\n",ans);
}
return0;
}
相关文章推荐
- TZU2014年省赛个人热身赛1 1187:Do the Untwist
- TZU2014年省赛个人热身赛1 1962:Binary Clock
- TZU2014年省赛个人热身赛1 3387:Free Goodies(DP+贪心)
- TZU2014年省赛个人热身赛1 3741:Singlehood Number
- TZU2014年省赛个人热身赛1 1264:Definite Values
- 2014年ACM-ICPC东北赛区热身赛D题 Number
- poj 3589 Number-guessing Game
- 2014年个人总结
- POJ 3589 Number-guessing Game G++
- 2014年个人总结
- 2014年个人知乎收藏夹整理
- 2014年个人规划
- NEFU 725 Number Guessing 枚举
- 2014年个人工作总结(补发)
- NEFU 725 Number Guessing 枚举
- POJ 3589 Number-guessing Game(简单题)
- Gartner:2014年个人云将取代个人电脑
- nefu 640 Number Guessing
- 2014年个人总结