Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
113250 | 毛泓博(做题专用,大号Fess) | 0/1背包 | C++ | 解答错误 | 30 | 0 MS | 248 KB | 456 | 2023-12-02 07:44:21 |
#include<bits/stdc++.h> #define int long long using namespace std; int m,n,s,ans,l; struct node { int c,w; }cw[1001]; bool cmp(node a,node b) { return a.c*1.0/a.w>b.c*1.0/b.w; } signed main() { cin>>m>>n; for(int i=1;i<=n;i++) cin>>cw[i].w>>cw[i].c; sort(cw+1,cw+n+1,cmp); for(int i=1;i<=n;i++) { if(s+cw[i].w<=m) { l=i; ans+=cw[i].c; s+=cw[i].w; } } if(s<m) ans+=cw[l+1].w*1.0/cw[l+1].c*(m-s); cout<<ans; }