80求助(回答闭关)
查看原帖
80求助(回答闭关)
1050716
Machuanqi99楼主2024/8/16 11:59
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
class Coin{
	public:
		double m;
		double v;
		double price;
};
Coin a[111];
bool cmp(Coin s1, Coin s2){
	if(s1.price > s2.price) return true;
	return false;
}
int main(){
	int n,t;
	cin >> n >> t;
	double ans = 0;
	for(int i = 1; i <= n; i++){
		cin >> a[i].m >> a[i].v;
		a[i].price = a[i].v/a[i].m;
	}
	sort(a+1, a+n+1, cmp);
	int s = 0;
	int k = 0;
	while(s < t){
		if(t-s >= a[k].m){
			ans += a[k].v;
			s += a[k].m;
		}else{
			ans += (t-s)*a[k].price;
			s += (t-s); 
		}
		k++;
	}
	printf("%.2lf", ans);
	return 0;
}

第一个测试点RE了,我的数组应该够大,真的不明白为什么

2024/8/16 11:59
加载中...