#loj184. 单位蒙日矩阵乘法

单位蒙日矩阵乘法

[AdditionalFile184.zip](file://AdditionalFile184.zip?type=additional_file)

#184. 单位蒙日矩阵乘法

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB 通过: 103 | 提交: 154

题目描述

对于一个长度为 nn 的排列 aa,定义 f(a)f(a) 为一个 n+1n+1 阶方阵,其中 f(a)i,j=ii[ai<j]f(a)_{i,j} = \sum_{i' \ge i} [a_{i'} < j]。(排列的下标、矩阵的下标、排列的值域均从 1 开始记)

对于两个矩阵 A,BA, B,定义其距离乘法 ABA \otimes B,其中 (AB)i,j=mink(Ai,k+Bk,j)(A \otimes B)_{i,j} = \min_k (A_{i,k} + B_{k,j})

给定两个长度为 nn 的排列 a,ba, b,可以证明存在唯一的长度为 nn 的排列 cc,使得 f(a)f(b)=f(c)f(a) \otimes f(b) = f(c),请输出 cc

输入格式

第一行,一个正整数 nn

接下来两行,各 nn 个正整数,分别代表排列 a,ba, b

输出格式

一行,nn 个正整数,代表排列 cc

样例

输入

3
1 3 2
2 1 3

输出

2 3 1

数据范围与提示

对于 30% 的数据,n100n \le 100

对于 100% 的数据,1n5×1051 \le n \le 5 \times 10^5,保证 a,ba, b 是排列。