首页 > 代码库 > PAT甲题题解-1070. Mooncake (25)-排序,大水题
PAT甲题题解-1070. Mooncake (25)-排序,大水题
#include <iostream> #include <cstdio> #include <algorithm> #include <string.h> using namespace std; /* 3 0 180 150 100 7.5 7.2 4.5 */ const int maxn=1000+5; int amounts[maxn]; float price[maxn]; struct Cake{ float amounts; //注意,这里得设置成浮点型,若是int一个样例会过不了 float price; float unitprice=0; bool operator<(const Cake tmp)const{ return unitprice>tmp.unitprice; } }cake[maxn]; int main() { int n,d; scanf("%d %d",&n,&d); for(int i=0;i<n;i++){ scanf("%f",&cake[i].amounts); } for(int i=0;i<n;i++){ scanf("%f",&cake[i].price); cake[i].unitprice=cake[i].price/cake[i].amounts; } sort(cake,cake+n); float ans=0; for(int i=0;i<n;i++){ if(d>=cake[i].amounts){ ans+=cake[i].price; d-=cake[i].amounts; } else{ ans+=(d/cake[i].amounts)*cake[i].price; break; } } printf("%.2f",ans); return 0; }
PAT甲题题解-1070. Mooncake (25)-排序,大水题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。