求助 80分
查看原帖
求助 80分
1288258
Tommy2012楼主2024/3/31 16:06
#include<bits/stdc++.h>
using namespace std;

struct node{
	double v, m;
	double price;
}gold[305];

bool cmp(node x, node y)
{
	return x.price > y.price;
}

int main()
{
	int n, T;
	double sum = 0.0;
	cin >> n >> T;
	for(int i = 0; i < n; ++i)
	{
		cin >> gold[i].m >> gold[i].v;
		gold[i].price = gold[i].v / gold[i].m * 1.0;
	}
	sort(gold, gold + n, cmp);
	for(int i = 0; i < n; ++i)
	{
		if(T >= gold[i].m)
		{
			T -= gold[i].m;
			sum += gold[i].v;
		}	
		else if(T < gold[i].m)
		{
			sum += T * gold[i].price;
			printf("%.2f" , sum);
			return 0;
		}
		else if(i == n - 1)
		{
			cout << sum;
			return 0;
		}
		 
	}
	return 0;
}

2024/3/31 16:06
加载中...