Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 25296 | Accepted: 7872 |
本题因为题意说肯定能够称出来,所以不用担心他是怎么称的,只要对几种情况进行穷举即可
代码:
1 #include < stdio.h >
2 #include < string .h >
3 char a[ 5 ][ 10 ],b[ 5 ][ 10 ],c[ 5 ][ 10 ];
4 int islight( char x)
5 {
6 int i;
7 for (i = 1 ;i <= 3 ;i ++ )
8 {
9 switch (c[i][ 0 ])
10 {
11 case ' u ' : if (strchr(b[i],x) == NULL) return 0 ; break ;
12 case ' e ' : if (strchr(a[i],x) != NULL || strchr(b[i],x) != NULL) return 0 ; break ;
13 case ' d ' : if (strchr(a[i],x) == NULL) return 0 ; break ;
14 }
15 }
16 return 1 ;
17 }
18 int isheavy( char x)
19 {
20 int i;
21 for (i = 1 ;i <= 3 ;i ++ )
22 {
23 switch (c[i][ 0 ])
24 {
25 case ' u ' : if (strchr(a[i],x) == NULL) return 0 ; break ;
26 case ' e ' : if (strchr(a[i],x) != NULL || strchr(b[i],x) != NULL) return 0 ; break ;
27 case ' d ' : if (strchr(b[i],x) == NULL) return 0 ; break ;
28 }
29 }
30 return 1 ;
31 }
32 int main()
33 {
34 int n,i; char t;
35 scanf( " %d " , & n);
36 while (n -- )
37 {
38 for (i = 1 ;i <= 3 ;i ++ )
39 scanf( " %s%s%s " ,a[i],b[i],c[i]);
40 for (t = ' A ' ;t <= ' L ' ;t ++ )
41 {
42 if (islight(t))
43 {
44 printf( " %c is the counterfeit coin and it is light.\n " ,t);
45 break ;
46 }
47 if (isheavy(t))
48 {
49 printf( " %c is the counterfeit coin and it is heavy.\n " ,t);
50 break ;
51 }
52 }
53 }
54 return 0 ;
55 }
56
57