CF1398G.Running Competition
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A running competition is going to be held soon. The stadium where the competition will be held can be represented by several segments on the coordinate plane:
- two horizontal segments: one connecting the points (0,0) and (x,0), the other connecting the points (0,y) and (x,y);
- n+1 vertical segments, numbered from 0 to n. The i-th segment connects the points (ai,0) and (ai,y); 0=a0<a1<a2<⋯<an−1<an=x.
For example, here is a picture of the stadium with x=10, y=5, n=3 and a=[0,3,5,10]:

A lap is a route that goes along the segments, starts and finishes at the same point, and never intersects itself (the only two points of a lap that coincide are its starting point and ending point). The length of a lap is a total distance travelled around it. For example, the red route in the picture representing the stadium is a lap of length 24.
The competition will be held in q stages. The i-th stage has length li, and the organizers want to choose a lap for each stage such that the length of the lap is a divisor of li. The organizers don't want to choose short laps for the stages, so for each stage, they want to find the maximum possible length of a suitable lap.
Help the organizers to calculate the maximum possible lengths of the laps for the stages! In other words, for every li, find the maximum possible integer L such that limodL=0, and there exists a lap of length exactly L.
If it is impossible to choose such a lap then print −1.
一场跑步比赛即将举行。比赛场地可由坐标平面上的若干线段表示:
- 两条水平线段:一条连接点 (0,0) 与 (x,0),另一条连接点 (0,y) 与 (x,y);
- n+1 条垂直线段,编号从 0 到 n。第 i 条垂直线段连接点 (ai,0) 与 (ai,y);其中满足 0=a0<a1<a2<⋯<an−1<an=x。
例如,下图展示了一个 x=10、y=5、n=3 且 a=[0,3,5,10] 的场地示意图:

一个“圈”(lap)是一条沿这些线段行进的闭合路径,起点与终点重合,且路径不自交(除起点/终点重合外,其余任意两点均不重合)。一个圈的长度即为其总行程距离。例如,图中用红色标出的路径即为一个长度为 24 的圈。
比赛共分 q 个阶段进行。第 i 个阶段的指定长度为 li,主办方希望为每个阶段选择一个圈,使得该圈的长度能整除 li。主办方不希望为各阶段选择过短的圈,因此对每个阶段,他们希望找出满足条件的圈的最大可能长度。
请帮助主办方计算各阶段所能选择的圈的最大可能长度!换言之,对每个 li,求最大的正整数 L,使得 limodL=0,且存在一个长度恰好为 L 的圈。
若不存在满足条件的圈,则输出 −1。
输入格式
The first line contains three integers n, x and y (1≤n,x,y≤2⋅105, n≤x).
The second line contains n+1 integers a0, a1, ..., an (0=a0<a1<a2<⋯<an−1<an=x).
The third line contains one integer q (1≤q≤2⋅105) — the number of stages.
The fourth line contains q even integers l1, l2, ..., lq (4≤li≤106) — the lengths of the stages.
第一行包含三个整数 n、x 和 y(1≤n,x,y≤2⋅105,且 n≤x)。
第二行包含 n+1 个整数 a0、a1、...、an(满足 0=a0<a1<a2<⋯<an−1<an=x)。
第三行包含一个整数 q(1≤q≤2⋅105)—— 阶段的数量。
第四行包含 q 个偶数 l1、l2、...、lq(4≤li≤106)—— 各阶段的长度。
输出格式
Print q numbers. The i-th number should be equal to the maximum possible length of a suitable lap for the i-th stage, or −1 if it is impossible to choose a lap for that stage.
输出 q 个数。其中第 i 个数应等于第 i 个阶段的合适圈道的最大可能长度;若该阶段无法选择任何圈道,则输出 −1。
输入输出样例
输入#1
3 10 5 0 3 5 10 6 24 30 14 16 18 10
输出#1
24 30 14 16 -1 -1
输入解题思路,AI测评打分。不知道怎么写?