CF1547E.Air Conditioners

传统题 时间 2000 ms 内存 256 MiB 8 尝试 3 已通过 1 标签

Air Conditioners

题目描述

在一条长度为 nn 的狭长地带上,有 kk 台空调:第 ii 台空调放置在第 aia_i 个格子(1ain1 \le a_i \le n)。同一个格子不能放置两台或以上的空调(即所有 aia_i 互不相同)。

每台空调有一个参数:温度。第 ii 台空调的温度为 tit_i

如下图所示,是长度为 n=6n=6 的狭长地带,其中 k=2k=2a=[2,5]a=[2,5]t=[14,16]t=[14,16]

对于每个格子 ii1in1 \le i \le n),请计算该格子的温度,其计算公式为

min1jk(tj+aji),\min_{1 \le j \le k}(t_j + |a_j - i|),

其中 aji|a_j - i| 表示 aja_jii 的绝对值差。

换句话说,第 ii 个格子的温度等于所有空调温度加上它们到第 ii 个格子的距离后的最小值。

让我们来看一个例子。假设 n=6,k=2n=6, k=2,第一台空调放在第 a1=2a_1=2 个格子,温度为 t1=14t_1=14,第二台空调放在第 a2=5a_2=5 个格子,温度为 t2=16t_2=16。此时各格子的温度如下:

  1. 11 个格子的温度为:$\min(14 + |2 - 1|, 16 + |5 - 1|)=\min(14 + 1, 16 + 4)=\min(15, 20)=15$;
  2. 22 个格子的温度为:$\min(14 + |2 - 2|, 16 + |5 - 2|)=\min(14 + 0, 16 + 3)=\min(14, 19)=14$;
  3. 33 个格子的温度为:$\min(14 + |2 - 3|, 16 + |5 - 3|)=\min(14 + 1, 16 + 2)=\min(15, 18)=15$;
  4. 44 个格子的温度为:$\min(14 + |2 - 4|, 16 + |5 - 4|)=\min(14 + 2, 16 + 1)=\min(16, 17)=16$;
  5. 55 个格子的温度为:$\min(14 + |2 - 5|, 16 + |5 - 5|)=\min(14 + 3, 16 + 0)=\min(17, 16)=16$;
  6. 66 个格子的温度为:$\min(14 + |2 - 6|, 16 + |5 - 6|)=\min(14 + 4, 16 + 1)=\min(18, 17)=17$。

请你对于每个格子 11nn,求出其温度。

输入格式

第一行包含一个整数 qq1q1041 \le q \le 10^4),表示测试用例的数量。接下来是 qq 组测试用例。每组测试用例前有一个空行。

每组测试用例包含三行。第一行包含两个整数 nn1n3×1051 \le n \le 3 \times 10^5)和 kk1kn1 \le k \le n),分别表示狭长地带的长度和空调的数量。

第二行包含 kk 个整数 a1,a2,,aka_1, a_2, \ldots, a_k1ain1 \le a_i \le n),表示空调在狭长地带上的位置。

第三行包含 kk 个整数 t1,t2,,tkt_1, t_2, \ldots, t_k1ti1091 \le t_i \le 10^9),表示空调的温度。

保证所有测试用例中 nn 的总和不超过 3×1053 \times 10^5

输出格式

对于每组测试用例,输出 nn 个用空格分隔的整数,表示每个格子的温度。

说明/提示

由 ChatGPT 4.1 翻译

样例

5

6 2
2 5
14 16

10 1
7
30

5 5
3 1 4 2 5
3 1 4 2 5

7 1
1
1000000000

6 3
6 1 3
5 5 5
15 14 15 16 16 17 
36 35 34 33 32 31 30 31 32 33 
1 2 3 4 5 
1000000000 1000000001 1000000002 1000000003 1000000004 1000000005 1000000006 
5 6 5 6 6 5 

在线编程 IDE

建议全屏模式获得最佳体验