| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
排除法+代入法, 0ms AC#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static char *weighStr[] = {"light", "heavy"} ;
int isCharInStr(char c, char *str, int len)
{
int i = 0 ;
for(i = 0; i < len; i++)
{
if(str[i] == c)
return 1 ;
}
return 0 ;
}
int unrealWeighGet(char c, char *l, char *r, char *w)
{
int tmp = 0 ;
int len = strlen(l) ;
if(isCharInStr(c, l, len))
tmp = 0 ;
else if(isCharInStr(c, r, len))
tmp = 1 ;
else
return -1 ;
if('u' == w[0])
return (tmp == 0) ? 1 : 0 ;
else
return (tmp == 0) ? 0 : 1 ;
}
int main(int argc, char *argv[])
{
int n = 0 ;
char l[3][8] ;
char r[3][8] ;
char w[3][8] ;
char unreals[12] = {0} ;
int len = 0 ;
int weigh = 0 ;
int lastWeigh = 0 ;
int i = 0, j = 0, k = 0 ;
scanf("%d", &n) ;
while(n--)
{
for(i = 0; i < 3; i++)
{
memset(l[i], 0, sizeof(l[0])) ;
memset(r[i], 0, sizeof(r[0])) ;
memset(w[i], 0, sizeof(w[0])) ;
}
memset(unreals, 0, sizeof(unreals)) ;
for(i = 0; i < 3; i++)
{
scanf("%s %s %s", l[i], r[i], w[i]) ;
len = strlen(l[i]) ;
if('e' == w[i][0])
{
for(j = 0; j < len; j++)
{
unreals[l[i][j] - 'A'] = 2 ;
unreals[r[i][j] - 'A'] = 2 ;
}
}
else
{
for(j = 0; j < len; j++)
{
if(0 == unreals[l[i][j] - 'A'])
unreals[l[i][j] - 'A'] = 1 ;
if(0 == unreals[r[i][j] - 'A'])
unreals[r[i][j] - 'A'] = 1 ;
}
for(j = 0; j < 12; j++)
{
if(0 == unreals[j])
unreals[j] = 2 ;
}
}
}
for(k = 0; k < 12; k++)
{
if(unreals[k] != 1)
continue ;
lastWeigh = -1 ;
for(i = 0; i < 3; i++)
{
if('e' == w[i][0])
continue ;
weigh = unrealWeighGet(k + 'A', l[i], r[i], w[i]) ;
if(lastWeigh != -1 && lastWeigh != weigh)
{
unreals[k] = 2 ;
continue ;
}
lastWeigh = weigh ;
}
if(1 == unreals[k])
{
printf("%c is the counterfeit coin and it is %s.\r\n", k+'A', weighStr[weigh]) ;
break ;
}
}
}
return 0 ;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator