第一个样例超时,大佬帮我!!!
查看原帖
第一个样例超时,大佬帮我!!!
661120
XKHi楼主2022/7/15 10:46
#include <iostream>
#include <cstdio>
using namespace std;
struct money{
	double zong;
	double zongjia;
	double danjia;
};
int main()
{
	money a[10000]={};
    int n;
	double kj; 
	double kjm=0;
	cin>>n>>kj;
	for(int i=0;i<n;i++){
		cin>>a[i].zong>>a[i].zongjia;
	}
	for(int i=0;i<n;i++){
		a[i].danjia=a[i].zongjia/a[i].zong;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(a[i].danjia>a[j].danjia){
				swap(a[i].danjia,a[j].danjia);
				swap(a[i].zong,a[j].zong);
				swap(a[i].zongjia,a[j].zongjia);
			}
		}
	}
	int i=0;
	while(kj>0){
		if(kj-a[i].zong>=0){
			kj-=a[i].zong;
			a[i].zong=0;
			kjm+=a[i].zongjia;
		}
		else if(kj-a[i].zong<0){
			kjm+=a[i].danjia*kj;
			printf("%0.2lf",kjm);
			return 0;
		}
		i++;
	}
	printf("%0.2lf",kjm);
    return 0;
}
2022/7/15 10:46
加载中...