| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436216 | 王栎州 | 【C6-7】阿里巴巴与四十大盗 | C++ | 通过 | 100 | 2 MS | 272 KB | 685 | 2026-04-12 10:04:33 |
#include<bits/stdc++.h> using namespace std; int n,m,a[10086],b[10086]; double c[10086]; bool cmp(int x,int y){ return c[x]>c[y]; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; c[i] = 1.0*b[i]/a[i]; } int id[10086]; for(int i=1;i<=n;i++) id[i]=i; sort(id+1,id+n+1,cmp); double ans = 0; int rest = m; for(int i=1;i<=n;i++){ int k = id[i]; if(rest >= a[k]){ ans += b[k]; rest -= a[k]; }else{ ans += c[k] * rest; rest = 0; break; } } printf("%.1f\n",ans); return 0; }