80分求助!!!
查看原帖
80分求助!!!
576198
Mars_wq楼主2023/9/2 19:31
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n, t;
struct node{
	int m, v;
	double b;
}a[100005];
double sum;
bool cmp(node x, node y){ return x.b > y.b; }
int main() {
	scanf("%d %d", &n, &t);
	if(n == 0){
		cout << 0;
		return 0;
	}
	for(int i = 1; i <= n; i++){
		cin >> a[i].m >> a[i].v;
		a[i].b = 1.0 * a[i].v / (a[i].m * 1.0);
	}
	sort(a + 1, a + n + 1, cmp);
	for(int i = 1; i <= n; i++){
		//cout << a[i].b << '\n';
		if(a[i].m <= t){
			sum += a[i].v;
			t -= a[i].m;
		}else{
			sum += 1.0 * t * a[i].b;
			printf("%.2lf", sum);
			break;
		}
	}
	return 0;
}
2023/9/2 19:31
加载中...