3星思维题-学姐肝手游
学姐肝手游
https://ac.nowcoder.com/acm/problem/14410
写一个函数方便判断攻击卡类型
运用STL的全排列函数对每一种可能的前三项进行最大值判断
#include <algorithm>
using namespace std;
double op(string s) {
if (s[0]=='A') return 1.0;
else if (s[0]=='B') return 1.5;
else return 0.8;
}
string a[5],b;
double sum,maxx;
int main()
{
cin >> a[0] >> a[1] >> a[2] >> a[3] >> a[4];
sort(a,a+5);
do {
sum=0;
if (a[0][1]==a[1][1]&&a[0][1]==a[2][1]) {
if (a[0][0]=='B') {
sum=(op(a[0])*1.5+op(a[1])*1.2*1.5+op(a[2])*1.4*1.5)*(2.0*1.5);
} else {
sum=(op(a[0])+op(a[1])*1.2+op(a[2])*1.4)*2.0;
}
} else {
if (a[0][0]=='B') {
sum=op(a[0])*1.5+op(a[1])*1.2*1.5+op(a[2])*1.4*1.5;
} else {
sum=op(a[0])+op(a[1])*1.2+op(a[2])*1.4;
}
}
if (sum>maxx) {
maxx=sum;
b=a[0]+' '+a[1]+' '+a[2];
}
} while (next_permutation(a,a+5));
cout << b << endl;
return 0;
}