提交时间:2026-04-12 10:04:33

运行 ID: 436216

#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; }