题目描述
对于一个长度为 n 的排列 a,定义 f(a) 为一个 n+1 阶方阵,其中 f(a)i,j=∑i′≥i[ai′<j]。(排列的下标、矩阵的下标、排列的值域均从 1 开始记)
对于两个矩阵 A,B,定义其距离乘法 A⊗B,其中 $(A\otimes B)_{i,j}=\min_k \left(A_{i,k}+B_{k,j}\right)$。
给定两个长度为 n 的排列 a,b,可以证明存在唯一的长度为 n 的排列 c,使得 f(a)⊗f(b)=f(c),请输出 c。
输入格式
第一行,一个正整数 n。
接下来两行,各 n 个正整数,分别代表排列 a,b。
输出格式
一行,n 个正整数,代表排列 c。
3
1 3 2
2 1 3
2 3 1
数据范围与提示
对于 30% 的数据, n≤100;
对于 100% 的数据,1≤n≤5×105,保证 a,b 是排列。