陈新


私信TA

用户名:3173682300

访问量:4385

签 名:

等  级
排  名 734
经  验 3717
参赛次数 3
文章发表 19
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
struct node
{
	int gi;
	int pi;
	double gpi;
	bool operator <(const node &next) const
	{
		return gpi>next.gpi;
	}
};
multiset<node>msd;
int main()
{
	node t;
	int n,m;
	double sum ,lf=1.0;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>t.gi>>t.pi;
		t.gpi = lf * t.pi / t.gi;
		msd.insert(t);
	}
	for(multiset<node>::iterator it=msd.begin();it!=msd.end();it++)
	{
		if(m >= it->gi)
		{
			m-= it->gi;
			sum+= lf * it->pi;
		}
		else
		{
			sum+= m*it->gpi;
			break;
		}
	}
	printf("%.1lf\n",sum);
	return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区