为什么把最后一个if条件改为if(q!=0)就会WA一个点
查看原帖
为什么把最后一个if条件改为if(q!=0)就会WA一个点
469418
Lmm_a楼主2021/7/24 17:07
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct cb{
	double m,v;
}a[200];
bool cmp(cb a,cb b){
	return a.v/a.m>b.v/b.m;
}
int main()
{
	int n,t,q,i;
    double sum=0;
	cin>>n>>t;
	q=t;
	for(i=0;i<n;i++)
	{
		cin>>a[i].m>>a[i].v;
	}
	sort(a,a+n,cmp);
	for(i=0;i<n;i++)
	{
		if(a[i].m>q)
		{
	    	break;
		} 
		q-=a[i].m;
		sum+=a[i].v;
	}
	if(i<n)
	{
		sum+=(q/a[i].m)*a[i].v;
	}
	printf("%.2lf",sum);
	return 0;
}
2021/7/24 17:07
加载中...