c++初级-卡牌游戏 IV
生活随笔
收集整理的这篇文章主要介绍了
c++初级-卡牌游戏 IV
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
卡牌游戏 IV
蒜头君在玩一种卡牌游戏,他有n张卡牌,每张卡牌上写着两个正整数 ai,bi,ai表示这张卡牌的能量值,bi表示这张卡牌的魔法值。他准备一张一张打出这 n张卡牌,每张卡牌会对敌人造成的伤害是这张卡牌的能量值乘魔法值。但是蒜头君觉得这样把这 n张卡牌都出完对敌人造成的伤害之和还是不够大,所以他偷偷学会了一种仙术。蒜头君施展一次仙术的时候会任意选择两张卡牌,把它们的魔法值交换,能量值不交换。蒜头君可以使用任意次仙术,当然也可以一次都不使用,他想知道使用了若干次仙术以后一张一张打出这 n张卡牌,对敌人造成的伤害之和最大是多少。
输入格式:
第一行,一个正整数 n(1≤n≤10的5次幂)n(1≤n≤10的5次幂)。接下来 n行,每行两个正整数 ai,bi(1≤ai,bi≤10的5次幂)ai,bi(1≤ai,bi≤10的6次幂)
输出格式:
输出一行,包含一个整数,表示蒜头君使用若干次仙术以后一张一张打出卡牌,对敌人造成的伤害之和的最大值。
由题目可知 我们需要用仙术进行对魔法值进行交换得到与能量值相乘的最大值,因此我们需要把最大的魔法值与最大的能量值放在一起相乘,这样才能得到最大的伤害值。
#include<iostream> #include<algorithm> using namespace std;int main() { int n;/*n为卡牌的数量*/long long int sum;/*sum为伤害值总和*/sum =0;cin>>n;long long int nengliang[n], mofa[n];/定义两个数组分别表示n张卡牌的能量值与魔法值*/for(int i=0;i<n;i++)cin>>nengliang[i]>>mofa[i];sort(nengliang,nengliang+n);/*调用sort函数对能量值与魔法值的数组分别排序*/sort(mofa,mofa+n);for(int i=0;i<n;i++)sum+=nengliang[i]*mofa[i];/*最后得到伤害值总和*/cout<<sum<<endl;return 0; }总结
以上是生活随笔为你收集整理的c++初级-卡牌游戏 IV的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 高精度定位系统:地铁隧道人员定位智能巡检
- 下一篇: 集体奖项