P12402 [COI 2025] 贪腐 / Korupcija
题目背景
译自 [COI 2025](https://hsin.hr/hio2025/) T3。
> ……普及贪腐,非惟寡人。吾施腐败之礼:朽乱纲纪,堕落功业,无尽滋长。凡彼人所许诸事,吾皆加倍赐予。且设第八议:予之于谁?索几何?……
题目描述
给定正整数 $N$。初始时,集合 $S=\{0,1,\ldots,2^N-1\}$。
初始时序列 $b_0=b_1=\ldots=b_{N-1}=0$。
考虑重复以下过程 $2^{N-1}$ 次:
- 从 $S$ 中选出两个整数 $X,Y$,满足 $X\oplus Y=2^k$($k\in \mathbb N$)。将它们从 $S$ 中删去。
- 令 $b_k\gets b_k+1$。
给定序列 $a_0,a_1,\ldots,a_{N-1}$。判断是否能通过恰当地选择每次操作的 $X,Y$,满足最终得到的 $b$ 序列和 $a$ 序列相同。如果能的话,还需要构造一组方案。
如果正确地判断了解的存在性,你也能得到部分分数。详见「计分方式」。
输入格式
第一行,正整数 $N$。
第二行,$N$ 个非负整数 $a_0,a_1,\ldots,a_{N-1}$。
保证 $\sum a_i=2^{N-1}$。
输出格式
如果不可能,输出一行一个 $\texttt{-1}$。
否则,输出 $2^{N-1}$ 行,每行两个非负整数 $X,Y$。
输出任意一组解均可。
说明/提示
### 数据范围
- $1\le N\le 20$;
- $0\le a_i$;
- $\sum a_i=2^{N-1}$。
### 子任务
子任务 $0$ 为样例。
| 子任务编号 | $N$ | 特殊性质 | 得分 |
| :-: | :-: | :-: | :-: |
| $1$ | $\le 4$ | | $15$ |
| $2$ | $\ge 2$ | 对于所有 $i>2$,$a_i=0$ | $15$ |
| $3$ | $\le 6$ | | $20$ |
| $4$ | $\le 20$ | | $50$ |
### 计分方式
如果正确地判断了解的存在性,你也能得到 $20\%$ 分数。
具体地说,如果你在无解的时候输出了 $-1$,有解的时候输出了 $2^{N-1}$ 对非负整数,那么就视为你正确地判断了解的存在性。
如果你构造的方案正确,可以得到剩余的 $80\%$ 分数。
---
题面背景的翻译由 GPT-o4-mini 提供。