点1爆了。。。
查看原帖
点1爆了。。。
467328
BLePb楼主2021/5/15 11:22

有哪个大佬帮个忙

#include<bits/stdc++.h>
using namespace std;
int n,t,r=0,x=0,i,j;
double sum=0;
struct jb
{
	double m,v,mv;
}a[1000];
bool cmp(jb a,jb b)
{
	if(a.mv==b.mv) return a.m>b.m;
	return a.mv>b.mv;
}
int main()
{
	cin>>n>>t;
	for(i=1;i<=n;i++)
	{
		cin>>a[i].m>>a[i].v;
		a[i].mv=a[i].v/a[i].m;
	}
	sort(a,a+n+1,cmp);
	while(r<t)
	{
		if(a[x].m+r>t)
		{
			int z=t-r;
			sum+=z*a[x].mv;
			r+=z;
		}
		else
		{
			r+=a[x].m;
			sum+=a[x].v;
			x++;
		}
	}
	printf("%.2lf",sum);
	return 0;
}
2021/5/15 11:22
加载中...