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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高精度定位系统:地铁隧道人员定位智能巡检
- 下一篇: 集体奖项