欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

c++初级-卡牌游戏 IV

发布时间:2024/5/15 c/c++ 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。