在异乡打拼的小李同志迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打。现在小李想让你帮他计算下当他开启外挂模式的时候最多可以取得多少分数。
注意:台面上的球数经常会异于传统斯诺克。
斯诺克比赛的基本规则如下:
一、 彩球共分8种颜色,红(1分)、黄(2分)、绿(3分)、棕(4分)、蓝(5分)、粉(6分)、黑(7分)、白(主球,控制白球来打其余球)。
二、 当台面上有红球的时候你必须先击打一个红球,然后能且只能击打一个彩球(不包括红球),此时落袋的彩球将会被放回桌面,一直重复该过程。
三、 当打完规则二的彩球(不包括红球)发现已经没有红球时,按照彩球的分值从低到高将其依次击入袋中。
输入格式:
输入仅有一行,共7个用空格隔开的整数,分别为当前台面上红、黄、绿、棕、蓝、粉、黑球的数目。
输出格式:
输出仅有一行,共1个整数,表示小李可以得到的最高分。
输入样例:
2 0 1 0 3 0 2
输出样例:
48
代码长度限制
16 KB
时间限制
1000 ms
内存限制
128 MB
栈限制
8192 KB
#include<bits/stdc++.h>
using namespace std;
int main() {
int t[10],w[10]= {1,2,3,4,5,6,7};
for(int i=0; i<7; i++) {
cin>>t[i];
}
int maxx=0;
for(int i=1; i<7; i++) {
if(t[i]>0) { //除了红球外其他的球有没有
maxx=max(w[i],maxx); //从红球外一个球的最大值
}
}
int sum=t[0]*maxx;//因为有红球时可以击打分值最大的球
if(maxx==0) { // 如果最大值等于0说明没有彩球那就代表着只能击打红球得一分
cout<<1;
return 0;
}
for(int i=0; i<7; i++) { //除了红球外还有其他彩球
sum+=(t[i]*w[i]); //把所以球的值加起来就ok了
}
cout<<sum<<endl;
return 0;
}