[R7E]小球碰撞 - 代码源竞赛平台

时空限制

1S/512M

题目描述

在数轴上有 nn 个移动速度为每秒 11 单位的小球,初始时第 ii 个小球的位置为 aia_i,移动方向为 did_i。方向只有 −1-1 和 11 两种,其中 −1-1 代表向左移动(位置减一),11 代表向右移动(位置加一)。当两个小球位置相同时,小球会发生碰撞,碰撞的一瞬间这两个小球就会交换移动方向。

数轴上还有 mm 个墙,第 ii 个墙的位置为 bib_i。小球撞上墙(即小球位置为 bib_i)的一瞬间移动方向变为相反。

求 tt 秒后每个小球的位置。

格式

输入格式

第一行包含三个整数 n,m,tn,m,t,分别表示小球的数量、墙的数量和移动的时间。

第二行包含 nn 个整数 aia_i,分别表示每个小球初始位置。数据保证 aia_i 互不相等。

第三行包含 nn 个整数 did_i,分别表示每个小球初始移动方向。

第四行包含 mm 个整数 bib_i,分别表示每个墙的位置。数据保证 bib_i 互不相等,保证对于任意 1≤i≤n1\leq i \leq n 且 1≤j≤m1\leq j\leq m,有 ai≠bja_i\neq b_j。

输出格式

输出一行包含 nn 个整数,第 ii 个整数表示 tt 秒后第 ii 个小球的位置。

样例

样例输入 #1

4 1 5
2 1 5 3
-1 -1 -1 1
0

样例输出 #1

3 0 8 4

样例解释 #1

小球的移动状态如下图:

样例输入 #2

6 3 1000
16 205 87 39 1 44
1 1 -1 1 1 -1
210 32 146

样例输出 #2

-937 181 127 65 -952 108

样例输入 #3

2 1 100
100 300
1 -1
200

样例输出 #3

200 200

数据规模

对于 10%10\% 的数据,n≤1000n\leq 1000,m=0m=0,t≤1000t\leq 1000。

对于 30%30\% 的数据,m=0m=0。

对于 50%50\% 的数据,m≤1m\leq 1。

对于 100%100\% 的数据,1≤n≤1051\leq n \leq 10^5,0≤m≤1050\leq m \leq 10^5,1≤t≤10181 \leq t \leq 10^{18},0≤ai,bi≤10180 \leq a_i,b_i \leq 10^{18},di∈{−1,1}d_i\in\{-1,1\}。数据保证 aia_i 互不相等,保证 bib_i 互不相等,保证对于任意 1≤i≤n1\leq i \leq n 且 1≤j≤m1\leq j\leq m,有 ai≠bja_i\neq b_j。