题库练习 Timetable
← 上一题 下一题 →

A11982 | Timetable

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

There are two bus stops denoted A and B, and there $n$ buses that go from A to B every day. The shortest path from A to B takes $t$ units of time but some buses might take longer paths. Moreover, buses are allowed to overtake each other during the route.

At each station one can find a sorted list of moments of time when a bus is at this station. We denote this list as $a_1 < a_2 < \ldots < a_n$ for stop A and as $b_1 < b_2 < \ldots < b_n$ for stop B. The buses always depart from A and arrive to B according to the timetable, but the order in which the buses arrive may differ. Let's call an order of arrivals valid if each bus arrives at least $t$ units of time later than departs.

It is known that for an order to be valid the latest possible arrival for the bus that departs at $a_i$ is $b_{x_i}$ , i.e. $x_i$ -th in the timetable. In other words, for each $i$ there exists such a valid order of arrivals that the bus departed $i$ -th arrives $x_i$ -th (and all other buses can arrive arbitrary), but there is no valid order of arrivals in which the $i$ -th departed bus arrives $(x_i + 1)$ -th.

Formally, let's call a permutation $p_1, p_2, \ldots, p_n$ valid, if $b_{p_i} \ge a_i + t$ for all $i$ . Then $x_i$ is the maximum value of $p_i$ among all valid permutations.

You are given the sequences $a_1, a_2, \ldots, a_n$ and $x_1, x_2, \ldots, x_n$ , but not the arrival timetable. Find out any suitable timetable for stop B $b_1, b_2, \ldots, b_n$ or determine that there is no such timetable.

输入格式

The first line of the input contains two integers $n$ and $t$ ( $1 \leq n \leq 200\,000$ , $1 \leq t \leq 10^{18}$ ) — the number of buses in timetable for and the minimum possible travel time from stop A to stop B.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ( $1 \leq a_1 < a_2 < \ldots < a_n \leq 10^{18}$ ), defining the moments of time when the buses leave stop A.

The third line contains $n$ integers $x_1, x_2, \ldots, x_n$ ( $1 \leq x_i \leq n$ ), the $i$ -th of them stands for the maximum possible timetable position, at which the $i$ -th bus leaving stop A can arrive at stop B.

输出格式

If a solution exists, print "Yes" (without quotes) in the first line of the output.

In the second line print $n$ integers $b_1, b_2, \ldots, b_n$ ( $1 \leq b_1 < b_2 < \ldots < b_n \leq 3 \cdot 10^{18}$ ). We can show that if there exists any solution, there exists a solution that satisfies such constraints on $b_i$ . If there are multiple valid answers you can print any of them.

If there is no valid timetable, print "No" (without quotes) in the only line of the output.

输入输出样例

输入 #1
3 10
4 6 8
2 2 3
输出 #1
Yes
16 17 21 
输入 #2
2 1
1 2
2 1
输出 #2
No
C++ 编辑器
输入
输出