美文网首页
2020百度之星程序设计大赛(初赛一)GPA

2020百度之星程序设计大赛(初赛一)GPA

作者: gudu12306 | 来源:发表于2020-07-21 13:37 被阅读0次

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

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≤test≤401) 表示数据组数。
接下来 test 行,每行一个正整数 x 表示四门考试的总分 (0≤x≤400)。

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

Sample Input

2
0
400

Sample Output

0.0
17.2

分析

为了使绩点最优,每个分数段直接选择最低的分数即可。然后枚举可能出现的分数分布情况,选出绩点最高的值。

C++代码

#include<iostream>
#include<algorithm>
using namespace std;

int a[11]={0,60,62,65,67,70,75,80,85,90,95};
double b[11]={0,1.0,1.7,2.0,2.3,2.7,3.0,3.3,3.7,4.0,4.3};
int main()
{
    int test,score;
    double result=0.0;
    cin>>test;
    while(test--)
    {
        cin>>score;
        for(int i=0;i<11;i++)
        {
            for(int j=0;j<11;j++)
            {
                for(int k=0;k<11;k++)
                {
                    for(int m=0;m<11;m++)
                    {
                        if(a[i]+a[j]+a[k]+a[m]<=score)result=max((double)result,b[i]+b[j]+b[k]+b[m]);
                    }
                }
            }
        }
        printf("%.1f\n",result);
    }
    return 0;
}

相关文章

网友评论

      本文标题:2020百度之星程序设计大赛(初赛一)GPA

      本文链接:https://www.haomeiwen.com/subject/gmjikktx.html