E. 数组重排

    传统题 1000ms 256MiB

数组重排

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

Y 同学是一位对算法充满热情的🐑。在日常工作中,他经常遇到需要对数组进行重排的任务。有一天,他对常规的排序和移动操作感到厌倦,于是设计了一种独特的、看似混沌却又蕴含规律的数字移动算法。

题目描述

算法开始时,有一个无限长的数组,编号从 1 开始。初始时,对于 i=1,2,,Ni=1, 2, \dots, N,数字 ii 被放置在数组的第 2i12i-1 个位置上。所有其他位置均为空。

接下来,算法会重复执行以下步骤,直到所有 NN 个数字都紧凑地排列在数组的前 NN 个位置(即位置 1,2,,N1, 2, \dots, N)为止:

  1. 找到当前所有非空位置中,下标最大的那个位置。
  2. 将该位置上的数字,移动到它左侧最近的那个空位置上。

现在,给定 NNQQ 次查询。每次查询给出一个整数 xx (1xN1 \le x \le N),你需要回答:在算法结束时,数组第 xx 个位置上存放的是哪个数字?

输入格式

第一行包含两个整数 NNQQ。 接下来 QQ 行,每行包含一个整数 xix_i,表示一次查询。

输出格式

对于每次查询,输出一行一个整数,表示算法结束后第 xix_i 个位置上的数字。

样例

样例输入 #1

4 3
2
3
4

样例输出 #1

3
2
4

提示

数据范围与约定

子任务编号 分值 限制
1 31 N1000,Q1000N \le 1000, Q \le 1000
2 29 N200000N \le 200000
3 40 1N1018,1Q2000001 \le N \le 10^{18}, 1 \le Q \le 200000

对于 100%100\% 的数据,1N1018,1Q2000001 \le N \le 10^{18}, 1 \le Q \le 200000

「果壳语法杯」ROUND #14 (Div.4)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2025-8-8 18:00
结束于
2025-8-15 18:00
持续时间
2 小时
主持人
参赛人数
31