救救孩子吧,第一个点wa
查看原帖
救救孩子吧,第一个点wa
739817
xdnjf楼主2023/4/29 19:44
#include<bits/stdc++.h>
using namespace std;
long long read(){
	long long x=0,y=1;
	char ch;
	ch=getchar();
	while(ch<'0'||ch>'9'&&ch!=EOF){
		if(ch=='-'){
			y=-1;
		}
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+(ch-'0');
		ch=getchar();
	}
	return x*y;
}
void write(long long x){
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
struct coin{
	long long m,v;
}a[1005];
bool cmp(coin a,coin b){
	return a.v*1.0/a.m>b.v*1.0/b.m;
}
int main(){
	long long n=read(),t=read();
	for(int i=1;i<=n;i++){
		cin>>a[i].m>>a[i].v;
	}
	sort(a+1,a+n+1,cmp);
	long long k=1;
	double ans=0.0;
	while(t>=a[k].m&&k<=n){
		t-=a[k].m;
		ans+=1.0*a[k++].v;
	}
	ans+=t*1.0*a[k].v/a[k].m;
	printf("%.2f",ans);
	return 0;
}

2023/4/29 19:44
加载中...