题目求助——小李打台球
  • 板块学术版
  • 楼主_StarDog_
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/26 22:09
  • 上次更新2023/10/27 05:42:38
查看原帖
题目求助——小李打台球
775432
_StarDog_楼主2022/10/26 22:09

原题

在异乡打拼的小李同志迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打。现在小李想让你帮他计算下当他开启外挂模式的时候最多可以取得多少分数。

注意:台面上的球数经常会异于传统斯诺克。

斯诺克比赛的基本规则如下:

一、彩球共分8种颜色,红(1分)、黄(2分)、绿(3分)、棕(4分)、蓝(5分)、粉(6分)、黑(7分)、白(主球,控制白球来打其余球)。

二、当台面上有红球的时候你必须先击打一个红球,然后能且只能击打一个彩球(不包括红球),此时落袋的彩球将会被放回桌面,一直重复该过程。

三、当打完规则二的彩球(不包括红球)发现已经没有红球时,按照彩球的分值从低到高将其依次击入袋中。

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int red,yellow,green,brown,blue,pink,black,sum=0;
    cin>>red>>yellow>>green>>brown>>blue>>pink>>black;
    if(red>=1&&yellow==0&&green==0&&brown==0&&blue==0&&pink==0&&black==0){
        cout<<red;
        return 0;
    }
    sum+=(yellow*2+green*3+brown*4+blue*5+pink*6+black*7);
    for(int i=1;i<=red;i++){
        if(black!=0) black--,sum+=8;
        else if(pink!=0) pink--,sum+=7;
        else if(blue!=0) blue--,sum+=6;
        else if(brown!=0) brown--,sum+=5;
        else if(green!=0) green--,sum+=4;
        else if(yellow!=0) yellow--,sum+=3;
    }
    cout<<sum;
    return 0;
}
2022/10/26 22:09
加载中...