# A

[AGC001F] Wide Swap 可知一个结论,若 i<j,hihj>ki < j,|h_i-h_j|> k 则无论怎么交换,hi,hjh_i,h_j 的相对位置不会改变。

据此,我们暴力连边,每条边表示 hih_i 必须得在 hjh_j,然后用一个堆拓扑一遍即可得出最小字典序

考虑使用数据结构优化这个建图方式

考虑使用建一棵权值主席树,上面全是虚点,每次加入新的 hih_i 我们在叶子上将 ii 连上这个权值,再一路向祖先连;每次连所有满足 i<j,hihj>ki < j,|h_i-h_j|> k 的边只需在权值主席树上将对应的区间连一下即可。

最后还是用一个堆来拓扑,有一个细节是,优先将堆(即当前入度为 00 的点)中虚点拿出来处理。


# B

和上面一样,可以转换为 DAG 上拓扑序的种类数。

然后发现所有的从前往后所有奇数,偶数的拓扑序是固定的,然后就可以 dpdp 了。


# C

发现答案在凸包上

闵克夫斯基和板子