C++ 20pts 只过样例
查看原帖
C++ 20pts 只过样例
831011
Deltary_楼主2023/3/7 21:59
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const char sp=' ';
struct gold{
	int coin,heavy;//coin是价格,heavy是重量
};
bool cmp(gold a,gold b){
	return a.coin*a.heavy>b.coin*b.heavy;
	/*==a.coin/a.heavy>b.coin/b.heavy==*/
}
int main(){
	int n,t;
	double ans=0;
	gold g[114];
	cin>>n>>t;
	for(int i=0;i<n;i++){
		cin>>g[i].heavy>>g[i].coin;
	}
	sort(g,g+n,cmp);
	int san=0;
	for(int i=0;i<n;i++){
		if(g[i].heavy<=t){
			ans+=g[i].coin;//增加背包的金币数量
			t-=g[i].heavy;//减少重量
		}else{
			ans+=(g[i].coin*t*1.0/g[i].heavy);
			break;//处理剩余
		}
	}
	printf("%.2f",ans);
	return 0;
}

求调

2023/3/7 21:59
加载中...