后4个wa,20分求调
查看原帖
后4个wa,20分求调
1455398
griep楼主2024/12/20 22:06
#include <stdio.h>
#include <stdlib.h>

typedef struct {
	double weight;
	double Unitprice;
	double price;
}DATA;

int cmp(const void *a,const void *b){
	return (*( DATA *)b).Unitprice-(*( DATA *)a).Unitprice;
}
int main(){
	double n,max_weight;
	scanf("%lf%lf",&n,&max_weight);
	DATA a[110];
	for(int i=0;i<n;i++){
		double price;
		scanf("%lf%lf",&a[i].weight,&a[i].price);
		a[i].Unitprice=a[i].price/a[i].weight;
	}
	qsort(a,n,sizeof(DATA),cmp);
	int p=0;
	double now_weight=0,ret=0;
	while(p<n){
		if(a[p].weight+now_weight>=max_weight){
			ret+=(max_weight-now_weight)*a[p].Unitprice;
			break;
		}
		else {
			now_weight+=a[p].weight;
			ret+=a[p].price;
			p++;
		}
	}
	printf("%.2lf",ret);
	return 0;
}
2024/12/20 22:06
加载中...