Description
jubeat是一款由日本KONAMI倾心打造的体感音乐游戏,该作在日韩、香港等地区一经推出就引起了玩家极大关注,现在也是当地各大机厅最热门的音乐游戏。
jubeat的界面如图所示,采用了4x4配置的16个正方形透明按钮操作,每个按钮下方都有对应的显示画面,玩家只要配合音乐节奏和画面提示依次按下显示的符号(由小而大的图形),即可获得高分。.
按下按键后jubeat对于分数的判定有4种:Perfect, Great, Good和Bad。分数的计算方式为:1000000 * (Perfect的个数 + 0.7 * Great的个数 + 0.4 * Good的个数 + 0.1 * Bad的个数) / 总音符数
而jubeat对于结果的判定也是分等级的,具体如下表:
等级 分数
EXC 1000000
SSS 980000~999720
SS 950000~979999
S 900000~949999
A 850000~899999
B 800000~849999
C 700000~799999
D 500000~699999
E 0~499999
给出一局中Perfect的个数,Great的个数,Good的个数,Bad的个数以及总音符数,求总分数以及获得的等级。
输入格式
第一行输入一个正整数T(1 <= T <= 1000),表示将要输入的测试数据数量。
接下来是T组测试数据,每组测试数据包括5个整数n,P,G,g,B,分别代表总音符数,Perfect的个数,Great的个数,Good的个数,Bad的个数。(1 <= n <= 1100, 保证P+G+g+B的和与总音符数相等)
输出格式
对于每一组测试数据,输出一行“Case X: ”,其中X表示第几组数据。然后输出总分数以及对应的等级,分数和等级间用一个空格隔开。分数的取整为最接近的整数(不足0.5向下取整,否则向上取整)
输入样例
3
151 1 50 66 34
4 1 1 1 1
5 5 0 0 0
输出样例
Case 1: 435762 E
Case 2: 550000 D
Case 3: 1000000 EXC
解题思路
水一下
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int t, k = 1, n, p, g, go, b, total;
double temp;
cin >> t;
while(t -- )
{
cin >> n >> p >> g >> go >> b;
total = 1000000 * (p + 0.7 * g + 0.4 * go + 0.1 * b) / n + 0.5;
if(total == 1000000)
s = "EXC";
else if(total > 979999)
s = "SSS";
else if(total > 949999)
s = "SS";
else if(total > 899999)
s = "S";
else if(total > 849999)
s = "A";
else if(total > 799999)
s = "B";
else if(total > 699999)
s = "C";
else if(total > 499999)
s = "D";
else
s = "E";
cout << "Case " << k++ << ": " << total << " " << s << endl;
}
return 0;
}