首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

hdu1070,该怎么处理

2013-02-17 
hdu1070http://acm.hdu.edu.cn/showproblem.php?pid1070感觉没错呀,网上搜了一下源代码,只是比俺多了一步

hdu1070
http://acm.hdu.edu.cn/showproblem.php?pid=1070
感觉没错呀,网上搜了一下源代码,只是比俺多了一步,但是认为题目中的都说了只有5天,一天200ml不就说明过1000ml直接可以跳过了,但是这样写发现ac不了,大家看看呗,谢了


#include <stdio.h>
#include <stdlib.h>
struct milk
{
    char a[100];
    int p;
    int v;
}io[100];
int main()
{
    int t,n,i,s[100],k,max;

    scanf("%d",&t);
    while(t--)
    {
        k=0;
        scanf("%d",&n);
        memset(s,0,100);
        for(i=0;i<n;i++)
        {
            scanf("%s",&io[i].a);
            getchar();//吸收字符
            scanf("%d %d",&io[i].p,&io[i].v);
            if(io[i].v<200||io[i].v>1000)
            continue;//直接跳出下面的不用比较了,也就是只有一个正确答案
            //脑子太死板了
            
            s[i]=io[i].v/200;
            if(io[k].p*s[i]>io[i].p*s[k]||(io[k].p*s[i]==io[i].p*s[k]&&io[i].v>io[k].v))
                   k=i;
        }
        printf("%s",io[k].a);
        printf("\n");
    }

    return 0;
}

[解决办法]
超过1000ml也不能直接排除吧。如果有一个牌子,1100ml,19元。那就应该买这个。

热点排行