CF1971E.Find the Car

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Timur 正在一辆车上,沿着数轴从 00 点行驶到 nn 点。汽车从 00 点在第 00 分钟开始出发。

数轴上有 k+1k+1 个标志牌,分别位于 0,a1,a2,…,ak0, a_1, a_2, \dots, a_k 处,Timur 知道汽车分别会在第 0,b1,b2,…,bk0, b_1, b_2, \dots, b_k 分钟到达这些位置。序列 aa 和 bb 都是严格递增的,且 ak=na_k = n。

在任意两个相邻的标志牌之间,汽车都以恒定速度行驶。Timur 有 qq 个询问:每个询问给定一个整数 dd,Timur 想让你输出汽车到达 dd 点所需的分钟数,向下取整。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含三个整数 nn、kk 和 qq(k≤n≤109k \leq n \leq 10^9;1≤k,q≤1051 \leq k, q \leq 10^5),分别表示终点位置、Timur 已知时间的点的数量和询问的数量。

每个测试用例的第二行包含 kk 个整数 aia_i(1≤ai≤n1 \leq a_i \leq n;对于每个 1≤i≤k−11 \leq i \leq k-1,有 ai<ai+1a_i < a_{i+1};ak=na_k = n)。

每个测试用例的第三行包含 kk 个整数 bib_i(1≤bi≤1091 \leq b_i \leq 10^9;对于每个 1≤i≤k−11 \leq i \leq k-1,有 bi<bi+1b_i < b_{i+1})。

接下来的 qq 行,每行包含一个整数 dd(0≤d≤n0 \leq d \leq n),表示 Timur 询问的距离。

所有测试用例中 kk 的总和不超过 10510^5,所有测试用例中 qq 的总和不超过 10510^5。

输出格式

对于每个询问,输出一个整数,表示汽车到达 dd 点所需的分钟数,向下取整。

输入输出样例

  • 输入#1

    4
    10 1 3
    10
    10
    0
    6
    7
    10 2 4
    4 10
    4 7
    6
    4
    2
    7
    1000000000 1 1
    1000000000
    1000000000
    99999999
    6 1 3
    6
    5
    2
    6
    5

    输出#1

    0 6 7 
    5 4 2 5 
    99999999 
    1 5 4

说明/提示

对于第一个测试用例,汽车从 00 点到 1010 点共用 1010 分钟,因此速度为每分钟 11 单位:

  • 在 00 点,时间为 00 分钟。
  • 在 66 点,时间为 66 分钟。
  • 在 77 点,时间为 77 分钟。

对于第二个测试用例,00 到 44 点速度为每分钟 11 单位,44 到 1010 点速度为每分钟 22 单位:

  • 在 66 点,时间为 55 分钟。
  • 在 44 点,时间为 44 分钟。
  • 在 22 点,时间为 22 分钟。
  • 在 77 点,时间为 5.55.5 分钟,答案为 55。

对于第四个测试用例,汽车速度为每分钟 1.21.2 单位,因此各询问的答案为:

  • 在 22 点,时间为 1.66…1.66\dots 分钟,答案为 11。
  • 在 66 点,时间为 55 分钟。
  • 在 55 点,时间为 4.16…4.16\dots 分钟,答案为 44。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页