照着深基改过了,输出全是0.00
查看原帖
照着深基改过了,输出全是0.00
541221
GYansec楼主2021/8/19 18:25

如题,照着书1:1改了结果只会输出0.00,求助哪里写错了

#include <iostream> 
#include <algorithm>
#include <cstdio>
using namespace std;
struct coin{
	int m,v;
}c[110];
bool cmp(coin a,coin b){
	return b.m*a.v>a.m*b.v;
}
int main(){
	int n,t,x,i;
	int ans=0;
	scanf("%d%d",&n,&t);
	x=t;
	for(i=0;i<n;i++)
	    scanf("%d%d",&c[i].m,&c[i].v);
	sort(c,c+n,cmp);
	for(i=0;i<n;i++){
		if(c[i].m>x)break;
		x-=c[i].m;
		ans+=c[i].v;
	}
	if(i<n)
	   ans+=1.0*x/c[i].m*c[i].v;
	printf("%.2lf",ans);
	return 0;
}
2021/8/19 18:25
加载中...