#BSRCH02. 新卡片放在哪里
新卡片放在哪里
题目描述
桌上有 张卡片,上面的整数按非递减顺序排列,即 ,数值可以重复。
每次给出一张写有整数 的新卡片,要求把它放在第一个数值大于等于 的旧卡片之前。这样既保持顺序,也保证新卡片位于所有已有的 之前。
请输出这个旧卡片的位置;如果所有旧卡片上的数都小于 ,输出 ,表示应放在末尾。
每次查询都只求位置,不真正插入卡片,原来的 张卡片及其下标始终不变。位置从 开始编号。
输入格式
第一行包含两个整数 ,分别表示旧卡片数量和查询次数。
第二行包含 个整数,表示非递减排列的卡片数值。
接下来 行,每行包含一个整数 ,表示新卡片上的数。
输出格式
输出 行,每行一个整数,表示应插入的位置,范围为 到 。
4 5
10 20 20 40
20
30
50
5
40
2
4
5
1
4
1 3
-2
-3
-2
-1
1
1
2
样例 1 解释
20 应放在原来第一个 20 之前,位置是 2;30 放在原来的 40 之前,位置是 4;50 放在末尾,位置是 5。各次查询独立,因此后续查询仍使用原来的四张卡片。
样例 2 解释
新数 -3 和 -2 都应放在原卡片之前;-1 应放在末尾。
数据范围与提示
对于所有数据,,。保证卡片数值非递减。
共 个测试点,每个测试点 分,按测试点独立计分,总分 分。
| 测试点 | 规模限制 |
|---|---|
| 1—5 | |
| 6—10 | |
| 11—15 | |
| 16—20 |
表中的规模限制只限制对应参数的上界,所有测试点同时满足上述完整数据范围。
时间限制:2 秒。内存限制:128 MiB。
相关
在以下作业中: