1020. 月饼 (25)PAT L2-003问题解答。

1020. 月饼 (25)

月饼是华夏人数在中秋佳节时吃的一模一样种民俗食物,不同地区来为数不少不比风味的月饼。现被得有品类月饼的库存量、总售价、以及市场之极端可怜需求量,请而算好获取的卓绝酷收入是微。

专注:销售时许取出一些库存。样例给来底状态是如此的:假如我们发出3种月饼,其库存量分别吗18、15、10万吨,总售价分别吗75、72、45亿老大。如果市场的极度酷需求量只生20万吨,那么我们尽充分收益策略应该是卖出所有15万吨第2栽月饼、以及5万吨第3种植月饼,获得
72 + 45/2 = 94.5(亿第一)。

输入格式:

每个输入包含1只测试用例。每个测试用例先给起一个请勿超越1000之正整数N表示月饼的种数、以及非超500(以万吨为单位)的正整数D表示市场最深需求量。随后同推行让出N个正数表示每种月饼的库存量(以万吨为单位);最后一实践被出N个正数表示每种月饼的终究售价(以亿元也单位)。数字中因为空格分隔。

出口格式:

本着每组测试用例,在一行中输出最深收入,以亿首先也单位并精确到稍微数点后2个。

输入样例:

3 20
18 15 10
75 72 45

输出样例:

94.50

#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdio.h>
#include <string>
#include <cstring>
#include <cstdio>
#include<algorithm>
#include<vector>

using namespace std;
struct mooncake
{
    float kucun;
    float zongshoujia;
    float danjia;
}cake[9999];

bool cmp(mooncake a, mooncake b)
{
    return a.danjia > b.danjia;
}

int main()
{
    int n;
    int need;
    cin >> n >> need;
    float income=0;
    for (int i = 0; i < n; i++)
    {
        cin >> cake[i].kucun;
    }
    for (int i = 0; i < n; i++)
    {
        cin >> cake[i].zongshoujia;
        cake[i].danjia = cake[i].zongshoujia / cake[i].kucun;
    }
    sort(cake, cake + n, cmp);
    int j = 0;
    while (need > 0&&j<n)
    {
        if (need > cake[j].kucun)
        {
            need -= cake[j].kucun;
            income += cake[j].zongshoujia;
        }
        else
        {
            income += cake[j].danjia*need;
            need = 0;
        }
        j++;
    }




    printf("%.2lf\n", income);
    system("pause");
    return 0;
}

 

PAT
L2-003题材解答
:月饼是华夏人数以中秋佳节时吃的同等栽民俗食物,不同地域发生诸多见仁见智风味的月饼。现吃得有类型月饼的库存量、总售价、以及市场之不过特别需求量,请你算好得到的无限要命收入是有些。

注意:销售时许取出一些库存。样例给出的状况是这样的:假如我们来3栽月饼,其库存量分别吗18、15、10万吨,总售价分别吗75、72、45亿头。如果市场的不过可怜需求量只来20万吨,那么我们无限深收益策略应该是卖出所有15万吨第2栽月饼、以及5万吨第3种植月饼,获得
72 + 45/2 = 94.5(亿首先)。

输入格式:

每个输入包含1单测试用例。每个测试用例先被闹一个非超过1000之正整数N表示月饼的项目数、以及未跳500(以万吨为单位)的正整数D表示市场最好充分需求量。随后同执于出N个正数表示每种月饼的库存量(以万吨为单位);最后一推行吃出N个正数表示每种月饼的到底售价(以亿老大也单位)。数字中为空格分隔。

出口格式:

本着每组测试用例,在一行中输出最充分收入,以亿头条也单位并精确到多少数点后2号。

输入样例:

3 20

18 15 10

75 72 45

输出样例:

94.50

自身认为此书是L2中极其次的书写了,除了代码量有接触大,其他类似从来不呀问题了。

直白上代码。

//

//  main.cpp

//  L2-03

//

//  Created by MaLker on 2017/3/13.

//  Copyright © 2017年 MaLker. All rights reserved.

//



#include 

#include 

using namespace std;

struct moon{

    double mess;

    double pries;

    //最大收益

    double ave;

}a[1005];

int main(int argc, const char * argv[]) {

    int n,ned;//ned 实际为need,即需求

    while (scanf("%d%d",&n,&ned)!=EOF) {

        for (int i=0; i

 

相关文章