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 提供。