1070. Mooncake (25)
2016-06-22 12:01
225 查看
IDEA
1.首先n和d为正整数,分别表示月饼数和需求量;
第二行是每种月饼的库存,为正数,不一定是正数,用float型;
2.可能存在总库存小于需求d的情况
CODE
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<fstream>
using namespace std;
#define Max 1001
struct Cake{
float num;//库存 ,可能不是整数
float price;//总价
float avg_price;//单价
};
int cmp(Cake c1,Cake c2){
return c1.avg_price>c2.avg_price;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
int n,d;//d总需求 ,n&d正整数
float sum=0;
vector<Cake> vec(Max);
cin>>n>>d;
for(int i=0;i<n;i++){
cin>>vec[i].num;
}
for(int i=0;i<n;i++){
cin>>vec[i].price;
vec[i].avg_price=vec[i].price/vec[i].num;
}
sort(vec.begin(),vec.end(),cmp);
int i=0;
//可能存在库存不够需求的情况,即d一直>0,但是i可能=n了已经
while(d&&i<n){
if(d>=vec[i].num){
sum+=vec[i].price;
d-=vec[i].num;
i++;
}else{
sum+=d*vec[i].avg_price;
break;
}
}
cout<<fixed<<setprecision(2)<<sum;
#ifndef ONLINE_JUDGE
fclose(stdin);
#endif
return 0;
}
1.首先n和d为正整数,分别表示月饼数和需求量;
第二行是每种月饼的库存,为正数,不一定是正数,用float型;
2.可能存在总库存小于需求d的情况
CODE
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<fstream>
using namespace std;
#define Max 1001
struct Cake{
float num;//库存 ,可能不是整数
float price;//总价
float avg_price;//单价
};
int cmp(Cake c1,Cake c2){
return c1.avg_price>c2.avg_price;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
int n,d;//d总需求 ,n&d正整数
float sum=0;
vector<Cake> vec(Max);
cin>>n>>d;
for(int i=0;i<n;i++){
cin>>vec[i].num;
}
for(int i=0;i<n;i++){
cin>>vec[i].price;
vec[i].avg_price=vec[i].price/vec[i].num;
}
sort(vec.begin(),vec.end(),cmp);
int i=0;
//可能存在库存不够需求的情况,即d一直>0,但是i可能=n了已经
while(d&&i<n){
if(d>=vec[i].num){
sum+=vec[i].price;
d-=vec[i].num;
i++;
}else{
sum+=d*vec[i].avg_price;
break;
}
}
cout<<fixed<<setprecision(2)<<sum;
#ifndef ONLINE_JUDGE
fclose(stdin);
#endif
return 0;
}
相关文章推荐
- libdvbpsi源码分析(四)PAT表解析/重建
- PAT配置
- 什么是端口复用动态地址转换(PAT) 介绍配置实例
- MikroTik layer7-protocol
- PAT是如何工作的
- PAT 乙级题:1002. 写出这个数 (20)
- PAT (Advanced Level) Practise 1001-1010
- 数据结构学习与实验指导(一)
- PAT Basic Level 1001-1010解题报告
- PAT 数素数
- PAT 福尔摩斯的约会
- PAT 德才论
- PAT 月饼
- 1001. 害死人不偿命的(3n+1)猜想
- 1002. 写出这个数
- 1032. 挖掘机技术哪家强
- 1001. 害死人不偿命的(3n+1)猜想 (PAT basic)
- 1002. 写出这个数(PAT Basic)
- 1004. 成绩排名(PAT Basic)
- 1006. 换个格式输出整数(PAT Basic)