#P12402. [COI 2025] 贪腐 / Korupcija

    ID: 12255 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>2025Special JudgeCOI(克罗地亚)

[COI 2025] 贪腐 / Korupcija

题目背景

译自 COI 2025 T3。

……普及贪腐,非惟寡人。吾施腐败之礼:朽乱纲纪,堕落功业,无尽滋长。凡彼人所许诸事,吾皆加倍赐予。且设第八议:予之于谁?索几何?……

题目描述

给定正整数 NN。初始时,集合 S={0,1,,2N1}S=\{0,1,\ldots,2^N-1\}

初始时序列 b0=b1==bN1=0b_0=b_1=\ldots=b_{N-1}=0

考虑重复以下过程 2N12^{N-1} 次:

  • SS 中选出两个整数 X,YX,Y,满足 XY=2kX\oplus Y=2^kkNk\in \mathbb N)。将它们从 SS 中删去。
  • bkbk+1b_k\gets b_k+1

给定序列 a0,a1,,aN1a_0,a_1,\ldots,a_{N-1}。判断是否能通过恰当地选择每次操作的 X,YX,Y,满足最终得到的 bb 序列和 aa 序列相同。如果能的话,还需要构造一组方案。

如果正确地判断了解的存在性,你也能得到部分分数。详见「计分方式」。

输入格式

第一行,正整数 NN

第二行,NN 个非负整数 a0,a1,,aN1a_0,a_1,\ldots,a_{N-1}

保证 ai=2N1\sum a_i=2^{N-1}

输出格式

如果不可能,输出一行一个 -1\texttt{-1}

否则,输出 2N12^{N-1} 行,每行两个非负整数 X,YX,Y

输出任意一组解均可。

2
2 0
0 1
2 3
2
1 1
-1
3
2 0 2
0 1
2 6
3 7
4 5

提示

数据范围

  • 1N201\le N\le 20
  • 0ai0\le a_i
  • ai=2N1\sum a_i=2^{N-1}

子任务

子任务 00 为样例。

子任务编号 NN 特殊性质 得分
11 4\le 4 1515
22 2\ge 2 对于所有 i>2i>2ai=0a_i=0
33 6\le 6 2020
44 20\le 20 5050

计分方式

如果正确地判断了解的存在性,你也能得到 20%20\% 分数。

具体地说,如果你在无解的时候输出了 1-1,有解的时候输出了 2N12^{N-1} 对非负整数,那么就视为你正确地判断了解的存在性。

如果你构造的方案正确,可以得到剩余的 80%80\% 分数。


题面背景的翻译由 GPT-o4-mini 提供。