20分求助,我明明跟题解差不多,样例也过了为什么不对?
查看原帖
20分求助,我明明跟题解差不多,样例也过了为什么不对?
516634
LYQ310北极企鹅楼主2022/10/18 17:18
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct coin{
	int m,v;
	double k;
}a[110];
bool cmp(coin x,coin y){
	if(x.k>y.k) return 1;
	if(x.k<y.k) return 0;
	if(x.m<=y.m) return 1;
	return 0;
}
int main()
{
	int n,t;
	cin>>n>>t;
	for(int i=0;i<n;i++){
		cin>>a[i].m>>a[i].v;
		a[i].k=a[i].v/a[i].m;
	}
	sort(a,a+n,cmp);
	double sum=0;
	for(int i=0;i<n;i++){
		if(a[i].m<=t){
			sum+=a[i].v;
			t-=a[i].m;
		}
		else{
			sum+=t*a[i].k;
			t=0;
			break;
		}
	}
	printf("%.2lf",sum);
	return 0;
}
2022/10/18 17:18
加载中...