P17505 [ICPC 2026 Wuhan I] Iroha and the Kingdom of Construction
题目描述
兜兜转转,彩叶来到了月读空间里的一个神秘地界 — 构造王国。
听闻你曾经来过此处,彩叶非常开心,并向你分享了她在构造王国中一段有趣的记忆。
构造王国中有一副神奇的纸牌,它有恰好 $n$ 种不同点数(依次用 $1$ 到 $n$ 之间的整数表示),每种点数恰好有两张。经过均匀洗牌,这 $2n$ 张纸牌构成了一幅牌堆。换句话说:**输入数据保证,牌堆是由所有包含 $n$ 种点数、每种恰好两张牌的合法牌堆中等概率随机生成的。**
在这个空间中,彩叶被赋予了一个很强大的能力:生成栈。由于这项能力十分消耗体力,彩叶只能生成 $260$ 个栈。
现在,彩叶需要按照从上到下的顺序依次取出初始牌堆中的牌。对于每张被取出的牌,彩叶可以将其放入任意一个栈中。
当所有的 $2n$ 张牌都放置完毕后,彩叶的栈需要满足以下条件:可以进行若干次如下的 “消除操作”,直到所有牌均被消除完毕:
- 每次操作选择两个不同的栈,若这两个栈当前的栈顶卡牌点数相同,则将这两张牌同时弹出(删除)。
很可惜,彩叶并没有解决这个问题,所以她把问题交给了聪明又有经验的你,希望你来帮她解决这个问题。
为了方便你解答这个问题,你不需要给出具体的消除过程,只需要输出按原牌堆顺序每张牌分别被放入了哪个栈中。彩叶会帮助你判断你的构造是否正确。
输入格式
第一行包含一个正整数 $n$($1 \le n \le 5\times10^5$),表示卡牌的种类数。
第二行包含 $2n$ 个正整数 $a_1,a_2,\ldots,a_{2n}$($1 \le a_i \le n$),依次表示初始牌堆从上到下每张牌的点数。保证 $\{1,2,\ldots,n\}$ 中的每种数字恰好出现两次。
**保证数据恰好有 $50$ 组(包括样例),每组数据中的数组 $a$ 都是从所有的长度为 $2n$,且 $\{1,2,\ldots,n\}$ 中每种数字各出现两次的序列中等概率选择。**
输出格式
输出一行,包含 $2n$ 个正整数 $c_1,c_2,\ldots,c_{2n}$,其中 $1 \le c_i \le 260$,表示初始牌堆中第 $i$ 张取出的牌被放入了第 $c_i$ 个栈中。
如果有多种满足条件的方案,输出任意一种即可。
说明/提示
在处理完你的指令后,后 $257$ 个栈都是空的,而前 $3$ 个栈分别形如(元素按照从栈底到栈顶的顺序列举):
1. $[1,2,3]$;
2. $[1,2]$;
3. $[3]$。
不难证明存在一种办法消除所有的数。