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;
}