| ||||||||||
| 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 | |||||||||
附上代码,WA了5次,一直怀疑算法,原来是每次开始没有初始化,数据,所以大家要有好习惯哈。140k,0ms#include<stdio.h>
#include<string.h>
#define MAXSIZE 6
typedef struct
{
int trcoin;
int light;
int heavy;
}Coin;
int value(char result[])
{
if(strcmp("even",result)==0) return 0;
if(strcmp("up",result)==0) return 1;
return 2;
}
void hand(char left[],char right[],int value,Coin coin[])
{
unsigned int i;
if(value==0)
{
for(i=0;i<strlen(left);i++)
{
coin[left[i]-65].trcoin=1;
}
for(i=0;i<strlen(right);i++)
{
coin[right[i]-65].trcoin=1;
}
}
else if(value==1)
{
for(i=0;i<strlen(left);i++)
{
coin[left[i]-65].heavy++;
}
for(i=0;i<strlen(right);i++)
{
coin[right[i]-65].light++;
}
}
else
{
for(i=0;i<strlen(left);i++)
{
coin[left[i]-65].light++;
}
for(i=0;i<strlen(right);i++)
{
coin[right[i]-65].heavy++;
}
}
}
int main(void)
{
Coin coin[12]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};
int n,i,count,pos,max;
char left[MAXSIZE*2],right[MAXSIZE*2];
char result[MAXSIZE];
scanf("%d",&n);
while(n--)
{
max=0;
memset(coin,0,sizeof(coin));
for(i=0;i<3;i++)
{
scanf("%s%s%s",left,right,result);
hand(left,right,value(result),coin);
}
for(i=0;i<12;i++)
{
if(!(coin[i].trcoin || (coin[i].heavy>0 && coin[i].light>0)))
{
if(coin[i].light>max)
{
pos=i;
max=coin[i].light;
}
else if(coin[i].heavy>max)
{
pos=i;
max=coin[i].heavy;
}
}
}
if(coin[pos].light>0) printf("%c is the counterfeit coin and it is light.\n",pos+65);
else printf("%c is the counterfeit coin and it is heavy.\n",pos+65);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator