九度OJ 题目1002:Grading
2015-08-08 21:05
357 查看
一题目描述:
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,由于涉及到除法运算,数据类型最好为double型.
三.代码
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,由于涉及到除法运算,数据类型最好为double型.
三.代码
#include <stdio.h> #include <stdlib.h> #include <math.h> double max(double x,double y,double z) { double m=-1; if(x>m) m=x; if(y>m) m=y; if(z>m) m=z; return m; } int main() { double P,T,G1,G2,G3,GJ,ans,close; int i,j; freopen("1002.txt","r",stdin); while(scanf("%lf%lf%lf%lf%lf%lf",&P,&T,&G1,&G2,&G3,&GJ)!=EOF) { if(fabs(G1-G2)<=T) ans=(G1+G2)/2; else if((fabs(G1-G3)<=T)&&(fabs(G2-G3)<=T)) ans=max(G1,G2,G3); else if((fabs(G1-G3)<=T)||(fabs(G2-G3)<=T)) { if((fabs(G1-G3))<(fabs(G2-G3))) close=G1; else close=G2; ans=(G3+close)/2; } else ans=GJ; printf("%.1f\n",ans); } return 0; }
相关文章推荐
- swift中使用object-c代码
- linux下mysql中文乱码和区分表名大小写
- SharedPreferences
- Leetcode Largest Number
- 记一个简单的保护if 的sh脚本
- The mook jong
- java操作mongodb(聚合函数)
- leetcode 103 —— Binary Tree Zigzag Level Order Traversal
- 【几何模板加点小思路】hdu-4998 Rotate
- ST算法详解+例题 O(1)查询区间最大最小值
- Java适配器设计模式
- [360笔试题]赛马
- 替换元素和非替换元素的学习
- Java执行Oracle存储过程
- java操作mongodb(分页优化)
- hunnu11562:The Triangle Division of the Convex Polygon(第n个卡特兰数取模)
- java操作mongodb(高级查询)
- jdk5-7特性
- LeetCode(133) Clone Graph
- [IOS]IOS绘画概念