[AGC006D] Median Pyramid Hard
题意
给定一个 \(n\) 层的金字塔。
第 \(n\) 层有一个 \(1\) 到 \(2 \times n - 1\) 的排列。
除 \(n\) 层以外每个数组都是下面三个数字的中位数。
求第一层的数字。
Sol
考虑二分答案的正确性。
注意到如果 \(i\) 不是中位数,那么 \(j \le i\) 一定要么被 \(i\) 干掉,要么被干掉 \(i\) 的数字干掉。
所以有单调性。
套路地,将每个数字变为 \(0/1\) 表示是否大于当前的数字。
发现顶层数字是离中间最近的两个相邻相同的数字。
最后特判没有相邻相同的数字即可。