20分蒟蒻求大佬解答
查看原帖
20分蒟蒻求大佬解答
223138
Douglas·Abraham楼主2020/10/1 17:20
#include<bits/stdc++.h>
using namespace std;
int main()
{
	float a,b,c[101],d[101],e[101]={0},f=0;//a为堆数,b为容量,c为质量,d为价值,e为比值,f为总值 
	cin>>a>>b;
	for(int i=1;i<=a;i++)
	{
		cin>>c[i]>>d[i];
        e[i]=d[i]/c[i];
        if(e[i]>e[i-1])
        {
        	swap(e[i],e[i-1]);
        	swap(c[i],c[i-1]);
        	swap(d[i],d[i-1]);
		}
        
	}
	for(int i=0;i<=a;i++)
	{
		
		if(b>=c[i]&&b!=0)
		{
			b-=c[i];
			f+=d[i];
			continue;
		}
		
		if(b<c[i])
		{
			f+=b*e[i];
			break;
		}
	}
	printf("%.2lf",f);
	return 0;
}

只有第一个点是对的,后面四个全部WA。

2020/10/1 17:20
加载中...