您的位置:首页 > 其它

Hdu 4525 威威猫系列故事——吃鸡腿

2013-03-27 18:34 176 查看
当时比赛的时候没ac,题目不难,只是没有考虑k1,k2和k是double类型,就一直错了,另外也忘考虑k1+k2>=-1的情况了,还有就是纠结于k<10^18这个条件,用了long long,不清楚double的取值范围,可惜了,我的第一场比赛连初赛都没过,以后要多参加些比赛了。

事后看了别人代码,修改如下:

View Code

#include <stdio.h>
#include <stdbool.h>

int main(void)
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif

int T, n;
double k1, k2, k, k0, a, sum;
int t, i, d;
scanf("%d", &T);
for(t = 1; t <= T; t++)
{
scanf("%d%lf%lf%lf", &n, &k1, &k2, &k);
sum = 0;
for(i = 0; i < n; i++)
{
scanf("%lf", &a);
sum += a;
}
if(sum > k)
{
printf("Case #%d: 0\n", t);
continue;
}
k0 = k1 + k2;
if(k0 <= 1 && k0 >= -1)
{
printf("Case #%d: inf\n", t);
continue;
}
d = 0;
while(true)
{
d++;
sum *= k0;
if(sum > k)   break;
}
printf("Case #%d: %d\n", t, d);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: