求帮忙,2 3 4 5RE
查看原帖
求帮忙,2 3 4 5RE
296180
ydqhzyx楼主2021/4/16 21:47
#include<bits/stdc++.h>
using namespace std;
double a[1050];
double b[1050];

double tel;
double sum[1050];
double sum1[1050];
bool cmp(int a,int b){
	return a>b;
}
int h;
int t;
double all;
int max;
int main (){

	int n,m;
	cin>>n>>m;
	
	for (int i=0;i<n;i++){
		cin>>a[i]>>b[i];
	 sum[i]=1.0*b[i]/a[i];
	 sum1[i]=sum[i];
	}
	for (int i=0;i<n;i++){
		tel+=1.0*a[i];
	} 
	if (tel<=m){
		for (int i=1;i<n;i++){
			b[0]+=1.0*b[i];
		}
		printf("%.2lf",b[0]);
		return 0;
	}
	tel=0.000;

	sort(sum1,sum1+n-1,cmp);

	while (tel<m){
		h=0;
	   while (sum1[t]!=sum[h]){
	   	h++;
	 
	   }
	   t++;
	   
	   tel+=1.0*a[h];
	   all+=1.0*b[h];
	  

	}

  if (tel>m){
  
  	all-=(1.0*sum[h]*(1.0*(tel-m)));
  }
  printf("%.2lf",all);
	
	
} 
2021/4/16 21:47
加载中...