Problem Description
背景:
场上有21个球,包括15个红色球(1分)和6个彩色球:黄色(2分)、绿色(3)、棕色(4)、蓝色(5)、粉色(6)、黑色(7分)。
每打进一个红球得1分,同时得到一个打彩球的机会,此时得分最多的方法是打黑球(7分分数最高),不过彩球打进后还要取出放回板上,红球不取出。
除非当所有红球都被打进,场上只剩下6个彩球,此时打进彩球不取出。当场上无球时比赛结束。
一个人所能得到的最高分数为 15*1+15*7+(2+3+4+5+6+7),即连续打进15个红球,每次打进红球后又打进了黑球,最后将6个彩球打进。
本题:当前分数+打进剩下所有球的分数>=对方分数时,胜利
Input
第一行包含一个数字N,表示实例数。
然后是N行,每一行由三个整数组成:
Ball_Left P_Score O_Score分别代表场上剩下的球数、当前分数和对手分数。
所有输入值都在32位整数值范围内。
Output
胜利输出“Yes”,否则输出“No”
#include <iostream>
using namespace std;
int main()
{
int n,i;
int ball,s1,s2;
int a[6]={7,6,5,4,3,2};
int j;
int max=12*8+27;
cin>>n;
for(i=0;i<n;i++){
cin>>ball>>s1>>s2;
if(ball<=6){ //场上球少于等于6个时,假设均为分值最大的球
for(j=0;j<ball;j++)
s1+=a[j];
}
else{
s1+=(ball-6)*8+27;
}
if(s1>=s2)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}