只过了第一个,求助!!!
查看原帖
只过了第一个,求助!!!
880132
Asakimi楼主2022/11/30 13:17
#include<bits/stdc++.h>
using namespace std;
int a[9999];
int b[9999];
int d[9999];
double c[9999];
int main(){
	int N,l;
	double T,ans=0;
	double p,k,j;
	cin>>N>>T;
	for(int i=1;i<=N;i++){
		cin>>a[i]>>b[i];
		c[i]=b[i]/a[i];
		d[i]=i;
	}
	for(int n=1;n<=N;n++){
		for(int y=1;y<=N-1;y++){
		if(c[y]<c[y+1]) swap(d[y],d[y+1]);
	 }
	}
	for(int u=1;u<=N;u++){
		l=d[u];
		ans+=a[l];
		j+=b[l];
		if(ans>T){
			ans-=a[l];
			j-=b[l];
			j=j+(T-ans)*c[l];
			break;
		}
	}
	printf("%0.2lf%",j);
	return 0;
}
2022/11/30 13:17
加载中...