不知道为啥?只有80分!!!求!!!
查看原帖
不知道为啥?只有80分!!!求!!!
772899
Enmin楼主2024/4/25 22:17
#include <bits/stdc++.h>
using namespace std;
double x[110],y[110],a[110];
int main() {
	int n,t;
	double ans=0;
	scanf("%d%d",&n,&t);
	for(int i=1;i<=n;i++) {
		scanf("%d%d",&x[i],&y[i]);
		a[i]=(double)y[i]/x[i];
	}
	for(int  i=1;i<=n;i++) {
		for(int j=1;j<=n-1;j++) {
			if(a[j]<a[j+1]) {
				swap(a[j],a[j+1]);
				swap(x[j],x[j+1]);
				swap(y[j],y[j+1]);
			}
		}
	}
	for(int i=1;i<=n;i++) {
		if(t>=x[i]) {
			t-=x[i];
			ans+=y[i];
		}else {
			ans+=a[i]*t;
			t=0;
		}
		if(t==0) {
			printf("%.2lf\n",ans);
			return 0;
		}
	}
	return 0;
}
2024/4/25 22:17
加载中...