编程题
### 问题描述 大风起兮云飞扬。威加海内兮归故乡。安得猛士兮守四方! 小蓝站在家乡的山上,感受着来自于西西伯利亚的风,回忆着汉楚那悲壮的历史。 突然,一排气球引起了小蓝的注意。山崖上有一排栅栏,每个栅栏上都绑上了一个气球,我们可以按照从左到右的顺序给每个气球编号 $1 \sim n$,每个气球上都有一个数字 $p_i$。 小蓝知道,那是古老的祭祀仪式,用来缅怀逝去的亲人,当每一个气球被风吹走时,就代表亲人随风去到了天堂。 小蓝是个善于思考的人,他想到了一个问题,当一个气球飞走后,剩下的气球中,中位数是多少? 具体来说,初始存在 $n$ 个气球,编号为 $1 \sim n$,每个气球有一个权值 $p_i$,每一秒,会有一个编号为 $x_i$ 的气球随风飘走,小蓝想知道每飘走一个气球,剩下的气球按照权值排序后,中位数是多少? **中位数**:对于一个长度为 $n$,并且已经排好序的序列 $a$ 来说,如果 $n$ 为奇数,那么中位数为 $a_{\frac {n+1} {2}}$;如果 $n$ 为偶数,那么中位数为 $\frac {a_{\frac {n} {2}} + a_{\frac {n} {2} + 1}} {2}$。 ### 输入格式 第一行输入一个整数 $n$,表示气球的数量。 第二行输入 $n$ 个整数 $p_1, p_2, p_3, ... , p_i , ... p_n$,代表每个气球的权值。 第三行一个整数 $q$,代表会有 $q$ 个气球飘走。 第四行输入 $q$ 个整数 $x_1, x_2, ..., x_q$,代表第 $i$ 秒编号为 $x_i$ 的气球会飘走。 ### 输出格式 输出一行,包含 $q$ 个浮点数 $a_1, a_2, a_3, ..., a_q$,代表第 $x_i$ 个气球飘走后,剩下的气球经过排序后,中位数是 $a_i$。**每个数保留一位小数**,每两个数之间用一个空格隔开。 ### 样例输入 ``` 6 1 8 3 4 6 2 3 2 4 3 ``` ### 样例输出 ``` 3.0 2.5 2.0 ``` ### 说明 - 第一秒后,第 $2$ 个气球飘走,剩下的气球经过排序后:$1,2,3,4,6$。 - 第二秒后,第 $4$ 个气球飘走,剩下的气球经过排序后:$1,2,3,6$。 - 第三秒后,第 $3$ 个气球飘走,剩下的气球经过排序后:$1,2,6$。 ### 评测数据范围 $1 \le q \lt n \le 2 \times 10^5, 1 \le p_i \le 10^9, 1 \le x_i \le n$。 保证 $x_i$ 各不相同。 数据量较大,请尽量使用较快的输入输出方式。
查看答案
赣ICP备20007335号-2