求大佬康康,20分
查看原帖
求大佬康康,20分
1521387
mc_1731楼主2024/12/14 22:58
#include<bits/stdc++.h>
using namespace std;

int main(){
	double a[1000][5]={0};
	double b[1000]={0};
	double sum = 0;
	double summ = 0;
	double n, t;
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		cin>>a[i][1]>>a[i][2];
		b[i]=1.0*a[i][2] / a[i][1];
	}
	for(int i=1;i<=n;i++){
		int p = 0, max=0;
		for(int j=1;j<=n;j++){
			if(max<b[j]){
				max = b[j];
				p = j;
			}
		}
		if(t<sum+a[p][1]){
			summ += b[p] * (t-sum);
            sum = t;
			break;
		}else{
			sum += a[p][1];
			summ += a[p][2];
			b[p] = 0;
		}
		
		
		
	}
	printf("%.2lf", summ);
	
	return 0;
} 

感觉是思路上的问题,但不知道错到哪里了,求大佬指教

2024/12/14 22:58
加载中...