[提交][状态][讨论版][命题人:]

## 题目描述

Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam problem to 3 independent experts. If they do not agree to each other, a judge is invited to make the final decision. Now you are asked to write a program to help this process.
For each problem, there is a full-mark P and a tolerance T(<P) given. The grading rules are:
• A problem will first be assigned to 2 experts, to obtain G1 and G2. If the difference is within the tolerance, that is, if |G1 - G2| ≤ T, this problem's grade will be the average of G1 and G2.
• If the difference exceeds T, the 3rd expert will give G3.
• If G3 is within the tolerance with either G1 or G2, but NOT both, then this problem's grade will be the average of G3 and the closest grade.
• If G3 is within the tolerance with both G1 and G2, then this problem's grade will be the maximum of the three grades.
• If G3 is within the tolerance with neither G1 nor G2, a judge will give the final grade GJ.

## 输入

Each input file may contain more than one test case.
Each case occupies a line containing six positive integers: P, T, G1, G2, G3, and

GJ, as described in the problem. It is guaranteed that all the grades are valid, that is, in the interval [0, P].

## 输出

For each test case you should output the final grade of the problem in a line. The answer must be accurate to 1 decimal place.

## 样例输入

20 2 15 13 10 18

## 样例输出

14.0

## 提示

1）如果G1G2的差值不大于T，则最终分数为G1G2的平均分；

2）否则给出第三个分数G3，计算G3与前面两个分数的差值。如果两个差值都不大于T，则最终结果为3个分数中的最大值；

3）如果只有一个差值不大于T，则最终结果为G3与那个同G3差值不大于T的分数的平均分；

4）如果两个差值都大于T，则给定第四个分数GJ，最终成绩就为GJ

1）如何读入数据，由于测试数据有多组，都是浮点数。那么可以先读取一个浮点数判断是否读到了文件结尾，如果没有读到文件结尾则说明还有一组数据，则读入剩下的数据。或者直接将六个浮点数一起读入，判断是否读到文件结尾；

2）差值是非零实数，在不知道孰大孰小的情况下做差可以使用math.h中的fabs函数。或者做个判断。

3）结果需要保留一位小数，可以使用

printf("%.1lf");

[提交][状态]