贪心80qwq
查看原帖
贪心80qwq
1210473
ytezwsw_xjy楼主2025/6/17 13:00
#include<bits/stdc++.h>
#define int long long 
using namespace std;
inline int read()//快读 
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
vector<int> w;
vector<int> v;
signed main(){
	int n=read(),t=read();
	for(int i=1;i<=n;i++){
		int wi,vi;
		vi=read(),wi=read();
		w.push_back(wi);
		v.push_back(vi);
	}
	for(int i=0;i<w.size();i++){
		for(int j=i+1;j<w.size();j++){
			double q1=double(double(w[i])/double(v[i]));
			double q2=double(double(w[j])/double(v[j]));
			if(q1<q2){
				swap(w[i],w[j]);
				swap(v[i],v[j]);
			}
		}
	}
	int i=0;
	double ans=0.0;
	while(t>0 && i<n){
		if(t>=v[i]){
			ans+=double(w[i]);
			t-=v[i];
			i++;
		}else{
			double s;
			s=double(double(w[i])/double(v[i]));
			ans=ans+double(t)*s;
			t=0;
			i++;
		}
	}
	printf("%.2lf",ans);
	return 0;
}

怎么错了啊qwq

2025/6/17 13:00
加载中...