首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
 俄罗斯方块 ↓俄罗斯方块↓ TxT小说阅读器 ↓语音阅读,小说下载,古典文学↓ 一键清除垃圾 ↓轻轻一点,清除系统垃圾↓ 图片批量下载器 ↓批量下载图片,美女图库↓ 移动开发 架构设计 编程语言 Web前端 互联网 开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
 资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图 开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈

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`

```#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int P,T,G1,G2,G3,GJ;
int my_max(int x,int y)
{
return x>y?x:y;
}
int main(int argc, char *argv[])
{
while(scanf("%d %d %d %d %d %d",&P,&T,&G1,&G2,&G3,&GJ)!=EOF)
{
if(abs(G1-G2)<=T)
printf("%.1lf\n",(double)(G1+G2)/2.0);
else if(abs(G1-G3)<=T&&abs(G2-G3)<=T)
printf("%.1lf\n",my_max(my_max(G1,G2), G3));
else if(abs(G1-G3)>T&&abs(G2-G3)>T)
printf("%.1lf\n",(double)GJ);
else if(abs(G1-G3)<=T&&abs(G2-G3)>T)
printf("%.1lf\n",((double)(G3+G1))/2.0);
else if(abs(G2-G3)<=T&&abs(G1-G3)>T)
printf("%.1lf\n",((double)(G3+G2))/2.0);
}
return 0;
}

/**************************************************************
Problem: 1002
User: kirchhoff
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/```

 此文从网络中自动搜索生成，不代表本网站赞成被搜索网站的内容或立场    查看原文