哪里错了?
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct l{
int m;
int v;
float j;
};
bool cmp(l x,l y){
return x.j<y.j;
}
int main(){
int n,t;
cin>>n>>t;
int all=t;
l a[n];
for(int i=0;i<n;i++){
cin>>a[i].m>>a[i].v;
a[i].j=1.0*a[i].v/a[i].m;
}
sort(a,a+n,cmp);
float ans=0;
for(int i=n;i>=0;i--){
if(t==0) break;
if(t>=-a[i].m){
t-=a[i].m;
ans+=a[i].v;
}else{
ans+=a[i].j*t;
break;
}
}
cout<<fixed<<setprecision(1)<<ans<<endl;
return 0;
}