305555: CF1054C. Candies Distribution

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Candies Distribution

题意翻译

幼儿园里有 $n$ 个小朋友编号为 $1 \sim n$ 排成一行,老师给第 $i$ 小朋友 $a_i$ 个糖果。 现在给出每个小朋友左边糖果比他多的小朋友人数 $l_i$ 和右边糖果比他多的小朋友人数 $r_i$。 若存在序列 $a_i$,输出 `YES` 换行并输出序列 $a_i$,输出任意答案;否则输出 `NO` 【数据范围】 $1\le n \le 1000$

题目描述

There are $ n $ children numbered from $ 1 $ to $ n $ in a kindergarten. Kindergarten teacher gave $ a_i $ ( $ 1 \leq a_i \leq n $ ) candies to the $ i $ -th child. Children were seated in a row in order from $ 1 $ to $ n $ from left to right and started eating candies. While the $ i $ -th child was eating candies, he calculated two numbers $ l_i $ and $ r_i $ — the number of children seating to the left of him that got more candies than he and the number of children seating to the right of him that got more candies than he, respectively. Formally, $ l_i $ is the number of indices $ j $ ( $ 1 \leq j < i $ ), such that $ a_i < a_j $ and $ r_i $ is the number of indices $ j $ ( $ i < j \leq n $ ), such that $ a_i < a_j $ . Each child told to the kindergarten teacher the numbers $ l_i $ and $ r_i $ that he calculated. Unfortunately, she forgot how many candies she has given to each child. So, she asks you for help: given the arrays $ l $ and $ r $ determine whether she could have given the candies to the children such that all children correctly calculated their values $ l_i $ and $ r_i $ , or some of them have definitely made a mistake. If it was possible, find any way how she could have done it.

输入输出格式

输入格式


On the first line there is a single integer $ n $ ( $ 1 \leq n \leq 1000 $ ) — the number of children in the kindergarten. On the next line there are $ n $ integers $ l_1, l_2, \ldots, l_n $ ( $ 0 \leq l_i \leq n $ ), separated by spaces. On the next line, there are $ n $ integer numbers $ r_1, r_2, \ldots, r_n $ ( $ 0 \leq r_i \leq n $ ), separated by spaces.

输出格式


If there is no way to distribute the candies to the children so that all of them calculated their numbers correctly, print «NO» (without quotes). Otherwise, print «YES» (without quotes) on the first line. On the next line, print $ n $ integers $ a_1, a_2, \ldots, a_n $ , separated by spaces — the numbers of candies the children $ 1, 2, \ldots, n $ received, respectively. Note that some of these numbers can be equal, but all numbers should satisfy the condition $ 1 \leq a_i \leq n $ . The number of children seating to the left of the $ i $ -th child that got more candies than he should be equal to $ l_i $ and the number of children seating to the right of the $ i $ -th child that got more candies than he should be equal to $ r_i $ . If there is more than one solution, find any of them.

输入输出样例

输入样例 #1

5
0 0 1 1 2
2 0 1 0 0

输出样例 #1

YES
1 3 1 2 1

输入样例 #2

4
0 0 2 0
1 1 1 1

输出样例 #2

NO

输入样例 #3

3
0 0 0
0 0 0

输出样例 #3

YES
1 1 1

说明

In the first example, if the teacher distributed $ 1 $ , $ 3 $ , $ 1 $ , $ 2 $ , $ 1 $ candies to $ 1 $ -st, $ 2 $ -nd, $ 3 $ -rd, $ 4 $ -th, $ 5 $ -th child, respectively, then all the values calculated by the children are correct. For example, the $ 5 $ -th child was given $ 1 $ candy, to the left of him $ 2 $ children were given $ 1 $ candy, $ 1 $ child was given $ 2 $ candies and $ 1 $ child — $ 3 $ candies, so there are $ 2 $ children to the left of him that were given more candies than him. In the second example it is impossible to distribute the candies, because the $ 4 $ -th child made a mistake in calculating the value of $ r_4 $ , because there are no children to the right of him, so $ r_4 $ should be equal to $ 0 $ . In the last example all children may have got the same number of candies, that's why all the numbers are $ 0 $ . Note that each child should receive at least one candy.

Input

题意翻译

幼儿园里有 $n$ 个小朋友编号为 $1 \sim n$ 排成一行,老师给第 $i$ 小朋友 $a_i$ 个糖果。 现在给出每个小朋友左边糖果比他多的小朋友人数 $l_i$ 和右边糖果比他多的小朋友人数 $r_i$。 若存在序列 $a_i$,输出 `YES` 换行并输出序列 $a_i$,输出任意答案;否则输出 `NO` 【数据范围】 $1\le n \le 1000$

加入题单

算法标签: