大佬们,问问这个代码为什么wa了第一个测试点
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
pair<double,double> p[N];
int k;
bool cmp(pair<double, double>a, pair<double, double>b)
{
return double(a.second/a.first) > double(b.second/b.first);
}
int main()
{
int n;
double t;
cin>>n>>t;
double sum=0,sum1=0;
for(int i=0;i<n;i++)
{
double x,y;
cin>>x>>y;
sum1+=x;
p[i].first=x;
p[i].second=y;
}
sort(p,p+n,cmp);
if(t >= sum1) printf("%.2lf",sum1);
else
{
for(int i=0;i<n;i++)
{
k=i;
if(t < p[i].first) break;
sum+=p[i].second;
t-=p[i].first;
}
if( k < n && t >= 0) sum+=(double)(p[k].second/p[k].first)*(double)(t*1.0);
}
printf("%.2lf",sum);
return 0;
}