#jring. 2026暑假CSP-J模拟赛04-T1 程老师的环形展台

2026暑假CSP-J模拟赛04-T1 程老师的环形展台

【文件读写】本题使用文件读写:输入文件 ring.in,输出文件 ring.out

时间限制:1000ms 内存限制:512MB

题目描述

程老师在科技馆布置了一场环形展览。场内共有 nn 个展台,围成一圈,沿顺时针方向依次编号为 1,2,,n1, 2, \ldots, n。相邻展台之间距离相等,nn 号展台的下一个顺时针位置是 11 号展台。

程老师需要按照一套特殊的报数规则给每个展台分配序号。他从 11 号展台出发,沿编号增大的方向(顺时针)依次走过各个展台,每到一个展台就报一个数。第一个数报在 11 号展台上,第二个数报在 22 号展台上,依此类推。

报数的过程中有一个关键的转向规则:每当程老师到达当前方向的尽头,他必须立即掉头。具体来说——

  • 11 号展台出发,初始方向为编号增大方向。
  • 当他报到 nn 号展台时,下一个数报在 n1n-1 号展台上,方向变为编号减小方向。
  • 当他沿编号减小方向报到 11 号展台时,下一个数报在 22 号展台上,方向重新变为编号增大方向。
  • 以此循环往复,永不停歇。

需要注意的是,11 号展台和 nn 号展台作为每次往返的端点,在一轮"从一端到另一端"的过程中各只出现一次。

程老师一共报了非常多个数。现在他有 qq 个问题:第 kk 个数报在了几号展台上?

输入格式

第一行两个整数 n,qn, q,分别表示展台数量和询问次数。

接下来 qq 行,每行一个整数 kk,表示询问第 kk 个数的位置。

输出格式

输出 qq 行,每行一个整数,依次表示每个询问的答案。

数据范围

  • 对于所有测试点:1n1051 \le n \le 10^51q1051 \le q \le 10^51k10181 \le k \le 10^{18}
  • 子任务分档如下:
测试点 kk \le 特殊性质
1 100
2 10410^4
3
4
5
6 10810^8
7
8
9
10
11 A
12
13 B
14
15 101810^{18}
16
17
18
19
20

特殊性质 A:n=2n = 2

特殊性质 B:q=1q = 1

样例输入 1

4 5
1
4
5
6
7

样例输出 1

1
4
3
2
1

样例输入 2

1 2
3
100

样例输出 2

1
1

样例输入 3

3 1
8

样例输出 3

2

样例解释

对于样例 1,报数序列的前若干项依次落在:111 \to 1222 \to 2333 \to 3444 \to 4535 \to 3626 \to 2717 \to 1

难度 普及-
通过率 33.3%
尝试 6
已通过 2
ID
695
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-J模拟赛 第4场