#P10919. 运输规划

    ID: 10498 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>O2优化二分图树链剖分笛卡尔树

运输规划

题目背景

你需要规划卡车的运输方案,为了让您更好地解决问题,请仔细阅读题面。

题目描述

nn 个城市,对于任意 1<in1 < i \leq n 满足第 ii 个城市与第 i1i-1 个城市间有一条双向的道路,每个城市有一个对卡车高度的限制 hih_i,代表只有高度小于等于 hih_i 的卡车可以从这个城市经过,现在有 mm 个城市 S1,S2,...,SmS_{1},S_{2},...,S_{m} 各有恰好一个运输任务,任务要求编号为 ii 且高度为 hSih_{S_{i}}卡车从城市 SiS_{i} 出发到达任意一个有机场的城市,而有 mm 个城市有机场,分别为 T1,T2,...,TmT_{1},T_{2},...,T_{m},对于一个合法的运输方案而言,需要保证每个卡车都到达一个机场且每个机场恰好有一辆卡车抵达。一个机场可以同时被多辆卡车经过。请注意,如果你无法经过某个城市,那么你也无法抵达这个城市。

cic_i 表示抵达位于城市 TiT_i 的机场的的卡车编号,令数组 F={c1,c2,...,cm}F = \{c_1,c_2,...,c_m\},请你最小化 FF 的字典序并输出 FF

我们定义两个长度为 lenlen 的数组 A,BA,B 满足 AA 的字典序小于 BB 当且仅当存在 0i<len0 \leq i < len 满足对于任意 1ji1 \leq j \leq i 满足 Aj=BjA_j = B_jAi+1<Bi+1A_{i+1} < B_{i+1}

数据保证有解,保证所有 hih_i 互不相同,所有 TiT_i 互不相同,所有 SiS_i 互不相同。但是可能会存在 i,ji,j 满足 Si=TjS_i = T_j

输入格式

第一行两个数 n,mn,m

接下来一行 nn 个数表示 h1,h2,...,hnh_1,h_2,...,h_n

再接下来一行 mm 个数表示 S1,S2,...,SmS_{1},S_{2},...,S_{m}

再接下来一行 mm 个数表示 T1,T2,...,TmT_{1},T_{2},...,T_{m}

输出格式

输出一行 mm 个数表示 FF

10 3 
1 2 3 5 4 10 8 6 7 9
1 2 8
6 10 3

1 3 2
20 5
12 13 14 15 16 17 18 19 20 22 21 30 29 28 27 26 23 24 25 1
1 20 2 5 3 
10 12 11 9 13 

1 2 3 4 5

提示

本题采用捆绑测试

子任务编号 特殊性质 分值
11 n,m50n,m \leq 50 1010
22 对于任意 1<in1 < i \leq n 满足 hi<hi1h_i < h_{i-1} 2525
33 n,m103n,m \leq 10^3
44 无特殊性质 4040

对于 100%100\% 的数据保证 $1 \leq m \leq n \leq 2 \times 10^5,0 < h_i \leq 10^9$。