###求救,不知哪有问题,第一个点过不去。
查看原帖
###求救,不知哪有问题,第一个点过不去。
351042
leopard1楼主2020/11/24 17:34
#include<bits/stdc++.h>
using namespace std;
long long n,t,m[110],v[110],p;
double j[110],bj,c,k;
int main()
{
		cin>>n>>t;
		for(int i=1;i<=n;i++)
		{
			cin>>m[i]>>v[i];
			j[i]=double(v[i]*1.00/(m[i]*1.00));
		}
		k=1;
		while(t!=0&&k!=n)
		{
			bj=-0.0001;
			p=0;
			for(int i=1;i<=n;i++)
			{
				if(j[i]>bj)
				{
					p=i;
					bj=j[i];
				}
			}
			if(t<m[p])
			{
				c+=double(double(v[p])*double(double(t)/double(m[p])))*1.00;
				t=0;
			}
			else
			{
				c+=v[p];
				t-=m[p];
				v[p]=0;
				m[p]=0;
			}
			v[p]=0;
			m[p]=0;
			j[p]=0;
			k++;
		}1
		printf("%.2lf",c);
}
2020/11/24 17:34
加载中...