2020百度之星初赛一 B GPA

Problem Description
小沃沃一共参加了 4 门考试,每门考试满分 100 分,最低 0 分,分数是整数。

给定四门考试的总分,请问在最优情况下,四门课绩点的和最高是多少?

分数与绩点之间的对应关系如下:

95~100 4.3

90~94 4.0

85~89 3.7

80~84 3.3

75~79 3.0

70~74 2.7

67~69 2.3

65~66 2.0

62~64 1.7

60~61 1.0

0~59 0

Input
第一行一个正整数 test(1 \le test \le 401)test(1≤test≤401) 表示数据组数。 接下来 testtest 行,每行一个正整数 xx 表示四门考试的总分 (0 \le x \le 400)(0≤x≤400)。

Output
对于每组数据,一行一个数表示答案。答案保留一位小数。

Sample Input
2
0
400
Sample Output
0.0
17.2

#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 305;

double a[maxn];
int b[20] = {0,60,62,65,67,70,75,80,85,90,95};//10

void init() {
    a[0] = 0.0;
    a[95] = 4.3;
    a[90] = 4.0;
    a[85] = 3.7;
    a[80] = 3.3;
    a[75] = 3.0;
    a[70] = 2.7;
    a[67] = 2.3;
    a[65] = 2.0;
    a[62] = 1.7;
    a[60] = 1.0;
}

int main() {
    init();
    int T;scanf("%d",&T);
    while(T--) {
        int n;scanf("%d",&n);
        double ans = 0.0;
        for(int i = 0;i <= 10;i++) {
            for(int j = 0;j <= 10;j++) {
                for(int k = 0;k <= 10;k++) {
                    for(int q = 0;q <= 10;q++) {
                        if(b[i] + b[j] + b[k] + b[q] <= n) {
                            ans = max(ans,a[b[i]] + a[b[j]] + a[b[k]] + a[b[q]]);
                        }
                    }
                }
            }
        }
        printf("%.1f\n",ans);
    }
    return 0;
}

你可能感兴趣的:(#,其他比赛题目)