求助!第一个点RE
查看原帖
求助!第一个点RE
291129
GO000楼主2021/12/25 16:16
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
	double m,v;
	double sum;
}f[1000005];
bool cmp(node x,node y)
{
	return x.sum>y.sum;
}
int main(){
	int n,t;
	cin>>n>>t;
	for(int i=0;i<n;i++)
	{
		cin>>f[i].m>>f[i].v;
		f[i].sum=f[i].v / f[i].m;
	}
	sort(f,f+n,cmp);
	double summ=0,ans=0;
	int i=0;
	while(summ+f[i].m<t)
	{
		summ+=f[i].m;
		ans+=f[i].v;	
		i++;
	} 
	if(summ==t)	printf("%.2lf",ans);
	else
	{
		ans=ans+(t-summ)*f[i].v/f[i].m;
		printf("%.2lf",ans);
	 } 
	return 0;
}
2021/12/25 16:16
加载中...