俺滴代码,只有第一个AC:
#include <bits/stdc++.h>
using namespace std;
struct c
{
int a,b,c,d;
};
c g[100];
bool cmp(c a1,c a2)
{
if(a1.c>a2.c)
return true;
return false;
}
int main()
{
int n,t;
cin>>n>>t;
for(int i=1;i<=n;i++)
{
cin>>g[i].a>>g[i].b;
g[i].c=g[i].b*1.0/g[i].a;
g[i].d=g[i].a*1.0/g[i].b;
}
sort(g+1,g+n+1,cmp);
float u=0;
for(int i=1;i<=n;i++)
{
if(t>=g[i].a)
{
t-=g[i].a;
u+=g[i].b;
}
else
{
u+=g[i].c*t;
break;
}
}
printf("%.2f",u);
return 0;
}