到底哪不对,求调
查看原帖
到底哪不对,求调
1351767
zyx_dzpd楼主2024/10/25 19:28
#include<bits/stdc++.h>
using namespace std;

double m[10901],v[21001],x[10001];

int main(){
	int n,i,j,t;
	double s=0;
	cin>>n>>t;
	for(i=1;i<=n;i++) cin>>m[i]>>v[i],x[i]=v[i]/m[i];
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(x[j]<x[j+1])
				swap(v[j],v[j+1]);
				swap(m[j],m[j+1]);
				swap(x[j],x[j+1]);
		}
	}
	i=1;
	while(1){
		if(t-m[i]>-0.000001){
			t-=m[i];
			s+=v[i];
		}
		else {
			s+=x[i]*(m[i]-t);
			t=0;
			break;
		}
		i++;
	}
	printf("%.2lf",s);
	return 0;
}
2024/10/25 19:28
加载中...