#P2592. Standard Point System

    ID: 1593 传统题 1000ms 256MiB 尝试: 6 已通过: 1 难度: 10 上传者: 标签>其他排序二分查找POJ Monthly--2005.08.28anonymous

Standard Point System

题目描述

广东省在高考中使用"标准分"来评估学生成绩。计算方法如下:

当某科目所有试卷批改完成后,每个学生获得一个初始分(整数,范围01500-150分)。广东省教育考试院将所有分数从高到低排序,通过计算低于该考生的学生比例,可以计算出该考生的标准分。完整计算过程如下:

1. 定义标准正态分布函数

$$\Phi(x)=\int\limits_{-\infty}^x\frac{1}{\sqrt{2\pi}}e^{-\frac{t^2}{2}}dt=\left\{ \begin{array}{lc} 0.5+\int\limits_0^x\frac{1}{\sqrt{2\pi}}e^{-\frac{t^2}{2}}dt & x\ge0 \\ 0.5-\int\limits_0^{-x}\frac{1}{\sqrt{2\pi}}e^{-\frac{t^2}{2}}dt & x<0 \end{array}\right. $$

2. 标准分计算公式

对于给定考生,假设低于该考生的学生比例为xx0x<10 \leq x < 1),则标准分计算如下:

临时标准分:

sp(x)=500+100Φ1(x)sp'(x)=500+100\Phi^{-1}(x)

最终标准分:

$$sp(x)=\left\{ \begin{array}{lr} 100 & sp'(x)\le100 \\ \lfloor sp'(x)\rfloor & 100<sp'(x)\le501 \\ \lceil sp'(x)\rceil & 501900 \end{array}\right. $$

输入输出格式

输入格式

输入包含多个测试用例:

  • 每个用例第一行是整数NN1N10000001 \leq N \leq 1000000),表示学生人数
  • 接着NN行,每行一个学生的初始分(0分数1500 \leq 分数 \leq 150
  • 然后是一个整数MM1M2001 \leq M \leq 200),表示查询次数
  • 接着MM行,每行一个要查询的初始分

测试用例之间可能有空行。N=0N=0表示输入结束。

输出格式

对于每个查询:

  • 输出对应的标准分
  • 测试用例之间输出空行

示例

输入样例1

1
150
1
150

2
135
98
2
135
98
0

输出样例1

100

500
100

计算提示

对于给定函数F(x)F(x),要计算积分AA(如式(1)所示):

A=abF(t)dt(1)A=\int\limits_a^bF(t)dt \quad (1)

可以:

  1. 选择正整数nn
  2. 计算步长:Δ=(ba)/n(2)\Delta=(b-a)/n \quad (2)
  3. 使用梯形法近似计算:$$B=\sum\limits_{i=1}^n(F(a+\Delta*(i-1))+F(a+\Delta*i))*\frac{\Delta}{2} \quad (3) $$

nn足够大时,AABB的差值会非常小。

数据规模说明

输入数据量较大,建议使用scanfscanf进行读取。

题目来源

POJ Monthly--2005.08.28, anonymous