L2-003 月饼

这个题不算难,只是需要点时间,但是我自己写的代码还有一个2分的样例过不去,实在找不出来哪里还有漏洞,下面是23分代码,大家可以借鉴同时找找我的错误漏洞在哪,评论指出来啊谢谢啦:

#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <algorithm>
using namespace std;
struct DD
{
    int a;
    int b;
    double c;
}A[2001];
bool cmp(DD a,DD b)
{
    return a.c>b.c;
}

int main()
{
    int n,we,i,j,num=0;
    double pri=0.0;
    scanf("%d%d",&n,&we);
    for(i=0;i<n;i++)
        scanf("%d",&A[i].a);
    for(i=0;i<n;i++)
        scanf("%d",&A[i].b);
        for(i=0;i<n;i++)
            A[i].c=A[i].b*1.0/A[i].a;
            sort(A,A+n,cmp);
            for(i=0;i<n;i++)
            {
                if(num+A[i].a<=we)
                {
                    num+=A[i].a;
                    pri+=A[i].b;
                }
                else
                {
                    pri+=A[i].c*1.0*(we-num);
                    break;
                }


            }
            printf("%.2f\n",pri);

}

 

posted @ 2018-03-21 20:09  NoRain丶  阅读(112)  评论(0编辑  收藏  举报