ACM复习(58)17983 jubeat

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;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值