63 lines
817 B
C++
63 lines
817 B
C++
#include<cstdio>
|
|
#define Num 3
|
|
|
|
int BtoD(char *);
|
|
int cmp(int);
|
|
int cul(int,int);
|
|
|
|
int score[Num],opt[Num];
|
|
|
|
int main(void)
|
|
{
|
|
score[0]=7;
|
|
score[1]=5;
|
|
score[2]=3;
|
|
|
|
opt[0]=BtoD("0010100100");
|
|
opt[1]=BtoD("0111010111");
|
|
opt[2]=BtoD("0111000101");
|
|
|
|
int i;
|
|
for(i=0;i<1024;i++)
|
|
{
|
|
if (0==cmp(i)) break;
|
|
}
|
|
|
|
printf("%d\n",10*(10-cul(i,BtoD("0011100111"))));
|
|
return 0;
|
|
}
|
|
|
|
int BtoD(char * num)
|
|
{
|
|
int tmp=0,f=1,i=-1;
|
|
while (num[++i]!='\0')
|
|
{
|
|
tmp+=f*(num[i]-48);
|
|
f<<=1;
|
|
}
|
|
return tmp;
|
|
}
|
|
|
|
int cmp(int std)
|
|
{
|
|
for (int i=0;i<Num;i++)
|
|
{
|
|
if (10-cul(std,opt[i])!=score[i]) {
|
|
return -1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int cul(int std,int opt)
|
|
{
|
|
int count=0;
|
|
opt^=std;
|
|
while (opt!=0)
|
|
{
|
|
if ((opt&1)==1) count++;
|
|
opt>>=1;
|
|
}
|
|
return count;
|
|
}
|
|
|