小信吃甜筒的题解

目录

原题描述:

时间:1s 空间:256M

题目描述:

输入格式:

输出格式:

样例1输入:

样例1输出:

主要思路:

ACCODE:


时间限制: 1000ms

空间限制: 262144kB

原题描述:

时间:1s 空间:256M

题目描述:

小信想吃到n个巧克力味的甜筒和m个草莓味的甜筒,不能多吃。

冰柜里,有x个巧克力味甜筒,饱食值分别为a_1,a_2,...,a_x,有y个草莓味甜筒,饱食值分别为b_1,b_2,...,b_y,有z个原味甜筒,饱食值分别为c_1,c_2,...,c_z。小信可以在原味甜筒上加调味料使其变成巧克力味或草莓味。

他想知道在不多吃的情况下能获得的最大饱食值。

输入格式:

第一行,包含五个正整数 n,m,x,y,z,表示小信想吃的甜筒数和冰柜内的不同口味甜筒数。

第二行,包含x个整数a_1,a_2,...,a_x,表示巧克力味甜筒饱食值。

第三行,包含y个整数b_1,b_2,...,b_y​,表示草莓味甜筒饱食值。

第四行,包含z个整数c_1,c_2,...,c_z,表示原味甜筒饱食值。

输出格式:

输出一个整数,小信能获得的最大饱食值。

样例1输入:

1 2 2 2 1
2 5
3 1
4

样例1输出:

12

主要思路:

这题是个贪心题,设吃了x个巧克力冰淇凌,y个草莓味冰淇凌,z个原味冰淇凌。

则x+y+z要<=n+m

还有个要注意的点,就是只有前n大,前m大的冰淇凌才可以进入评定。

最后就拍个序了。

ACCODE:
 

#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> v;
int a[100010],b[100010],c[100010];
bool cmp(int x,int y)
{
	return x>y;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n,m,x,y,z;
	cin>>n>>m>>x>>y>>z;
	for(int i=1;i<=x;i++)
	{
		cin>>a[i];
//		v.push_back(tmp);
	}
	for(int i=1;i<=y;i++)
	{
		cin>>b[i];
	}
	for(int i=1;i<=z;i++)
	{
		cin>>c[i];
		v.push_back(c[i]);
	}
	sort(a+1,a+1+x,cmp);
	for(int i=1;i<=n;i++)//进入评选
	{
		v.push_back(a[i]);
	}
	sort(b+1,b+1+y,cmp);
	for(int i=1;i<=m;i++)//进入评选
	{
		v.push_back(b[i]);
	}
	sort(v.begin(),v.end(),cmp);
	int ans=0;
	for(int i=0;i<n+m;i++)//遍历一遍
	{
		ans+=v[i];
	}
	cout<<ans;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值