Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
35141 | sunhuifeng | 金银岛 | C++ | 解答错误 | 1 MS | 260 KB | 602 | 2023-12-26 21:31:08 |
#include<iostream> #include<cmath> #include<algorithm> using namespace std; struct node{ int w; double all; double rmb;//人民币 }a[10001]; int cmp(node A,node B){ return A.rmb>B.rmb; } int n,w1,s; double ans; int main(){ cin>>n; for(int i=1;i<=n;i++){ ans=0; cin>>w1>>s; for(int j=1;j<=s;j++){ cin>>a[j].w>>a[j].all; a[j].rmb=a[j].all/a[i].w; } sort(a+1,a+1+s,cmp); int k=1; while((w1-a[k].w)>=0&&k<=s){ ans+=a[k].all; w1-=a[k].w; k++; } if(w1<a[k].w&&k<s){ ans+=w1*a[k].rmb; } printf("%.2lf\n",ans); } return 0; }