真的不知道哪里错了希望大佬帮助
查看原帖
真的不知道哪里错了希望大佬帮助
434467
lhjackgod楼主2021/1/23 09:59
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<stdlib.h>
using namespace std;
int cmp(int a,int b){
	return a>b;
}
int main(){
	int N;
	int T;
	float sum=0.00;
	cin>>N;
	cin>>T;
	int value[100][100];
	for(int i=0;i<N;i++){
		for(int j=0;j<2;j++){
			cin>>value[i][j];	
		}
	}
	double *value_big=(double*)malloc(N*sizeof(double));
	for(int j=0;j<N;j++){
		value_big[j]=1.0*(value[j][1])/(value[j][0]);
	}
	sort(value_big,value_big+N,cmp);
int ok=0;
for(int o=0;o<N;o++){
	if(T!=0){	
		if(1.0*value[o][1]/value[o][0]==value_big[ok]){
		
				if(T>value[o][0]){
					sum+=value[o][0]*value_big[ok];
					T-=value[o][0];
				}
				else{
					sum+=T*value_big[ok];
					T=0;
					break;
			}
			ok++;
			o=0;
		}
		}
}
printf("%.2lf\n",sum);
	free(value_big);
	return 0;
}
2021/1/23 09:59
加载中...