poj1013

可以參考http://www.slyar.com/blog/poj-1013-c.html上的測試用例

 

#include<stdio.h>
#include<string.h>

#define ABS(x) (x)>0?(x):(-x)

int main()
{
	int i, j, k, n;
	char left[3][7],right[3][7];//分別存儲左右兩邊
	int result[3] = {0};//分別存儲三組輸入的結果,爲0表示even,爲1表示右邊up,爲2表示右邊down
	char reflect[12] = {'A','B','C','D','E','F','G','H','I','J','K','L'};
	int identify[12];//存儲對12枚硬幣(A,B,C...)的判斷結果,大於1表示爲假且重,等於0或1表示真,小於0表示爲假且輕
	char s[5];
	int min,max,min_index,max_index;
	
	
	scanf("%d", &n);
		
	for(i=0; i<n; i++)
	{
		memset(identify, 0, sizeof(int)*12);
		min = 6;
		max = -6;
		for(j=0; j<3; j++)
		{
			scanf("%s %s %s", left[j], right[j], s);

			if(strncmp(s, "even", 4)==0)//如果是even,說明左右兩邊的硬幣都是真的
			{
				k = 0;
				while(left[j][k]!='\0')//兩邊相等則說明兩邊所放的硬幣都是真的,將其標記爲1,以後不再修改
				{
					identify[left[j][k]-'A'] = 1;
					identify[right[j][k]-'A'] = 1;
					k++;
				}
			}
			else if(strncmp(s, "up", 2)==0)//右邊輕
			{
				k = 0;
				while(left[j][k]!='\0')//左右兩邊硬幣個數是相同的,只用判斷一邊
				{
					if(identify[left[j][k]-'A'] != 1)
					{
						identify[left[j][k]-'A'] = identify[left[j][k]-'A']+2;
					}
					if(identify[right[j][k]-'A'] != 1)
					{
						identify[right[j][k]-'A'] = identify[right[j][k]-'A']-2;
					}
					k++;
				}
			}
			else if(strncmp(s, "down", 4)==0)//右邊重
			{
				k = 0;
				while(left[j][k]!='\0')
				{
					if(identify[left[j][k]-'A'] != 1)
					{
						identify[left[j][k]-'A'] = identify[left[j][k]-'A']-2;
					}
					if(identify[right[j][k]-'A'] != 1)
					{
						identify[right[j][k]-'A'] = identify[right[j][k]-'A']+2;
					}
					k++;
				}
			}
		}
		for(k=0; k<12; k++)
		{
			if(identify[k]>1 && identify[k]>max)
			{
				max = identify[k];
				max_index = k;
			}
			if(identify[k]<0 && identify[k]<min)
			{
				min = identify[k];
				min_index = k;
			}
		}
		if(ABS(min)<max)
			printf("%c is the counterfeit coin and it is heavy.\n", reflect[max_index]);
		else
			printf("%c is the counterfeit coin and it is light.\n", reflect[min_index]);
	}
	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章