| ||||||||||
| 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 | |||||||||
我的方案;每个硬币一个权重 遇到平衡时,每一个硬币一定为真币(让其权重为“无穷小”)。每遇到一次不平衡时,每一个币都受怀疑,权重加一 (见正文)我的方案;每个硬币一个权重 初始为0
每遇到一次平衡时,其中每一个硬币一定为真币(让其权重为“无穷小”)。
每遇到一次不平衡时,其中每一个币都受怀疑,权重++。(因为真币是无穷小 所以不妨碍)
(这个方案平衡出现的顺序也不会影响)
最后权重最大的硬币为 假币
接着判断轻重
假币位置在右边的且up 该假币light
假币位置在左边的且down 该假币light
其余情况heavy
这样思路是否可行?
sample和前面同学提供的测试都过了
但是依然WA 不知为何
附上代码:
敬请高手指点
#include <iostream>
#include <algorithm>
using namespace std;
#define INFINE -10000
int Ftime[12];//权重数组
//被猜测为假的次数 最多硬币的为假币 (当某一个被确认为真币 则这个值为无穷小)
int len[3];//记录每次称重硬币数量
int main()
{
int i,j,k,l;
int casenum;
int blank =0;
char input[3][1024];
// freopen("1013.txt", "r", stdin);
scanf("%d ",&casenum);
for(i=0;i<casenum;i++)
{
//initialize
for(j=0;j<12;j++)
{
Ftime[j] =0 ;
len[j] = 0;
}
for(l=0;l<3;l++)
{
gets(input[l]);
//平衡 全为真
if(strstr(input[l],"even") != NULL)//匹配even成功
for(k=0;;)
{
for(;isalpha(input[l][k]);k++)
{
Ftime[input[l][k]-'A'] = INFINE;
}
while(isspace(input[l][k]))
{k++;blank=k;//空格
}
for(;isalpha(input[l][k]);k++)
{
Ftime[input[l][k]-'A'] = INFINE;
}
len[l] = k-blank;
break;
}
//不平衡
if(strstr(input[l],"even") == NULL)//匹配even不成功
for(k=0;;)
{
for(;isalpha(input[l][k]);k++)
{
//怀疑假
Ftime[input[l][k]-'A'] ++;
}
while(isspace(input[l][k]))
{ k++;blank=k;//空格
}
for(;isalpha(input[l][k]);k++)
{
//怀疑假
Ftime[input[l][k]-'A'] ++;
}
len[l] = k-blank;
break;
}
}
int max = max_element(Ftime,Ftime+12)-Ftime;//查找权重最大的元素下标
char weight[]="heavy";//默认值
for(l=0;l<3;l++)
{
if((strchr(input[l],max+'A')-input[l] ) > len[l]/2 )//在天平右边
{
if(strstr(input[l],"up") != NULL )//匹配up成功
strcpy(weight,"light");
}
else
if((strchr(input[l],max+'A')-input[l] ) > 0 )//在天平右边
{
if(strstr(input[l],"down") != NULL )//匹配down成功
strcpy(weight,"light");
}
}
printf("%c is the counterfeit coin and it is %s. \n",max+'A',weight);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator