C++题,求大佬解析

含有N个可重复整数的集合S。

对该集合S可以有两种操作:

1、选择集合中的两个整数x,y,将x,y从集合中剔除,留下x+y插入到集合中。

2、选择集合中的两个整数x,y,将x,y从集合中剔除,留下x-y插入到集合中。

集合S中只剩下一个元素时,无法进行上述两种操作。

集合的极差定义为集合内最大值与最小值的差:max(S)-min(S)。

在对集合S做若干次操作后,期望得到最大化的集合的极差:max(max(S)-min(S))

其中,操作1的上限为p次,操作2的上限为q次。(操作次数可以小于上限)

例:

数组 8 -1 -4 2 6 -3, p=1,q=2;

减法取2-(-3)=5,(-4)-6=-10,加法为8+5=13; 最大13,最小-10,极差为23。

求大佬思路,最好能写一下代码

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务