#J2026M2. [CSP-J 2026 模拟一] 双面卡片(cards)

    ID: 3028 传统题 文件IO:cards 1500ms 256MiB 尝试: 8 已通过: 1 难度: 2 上传者: 标签>其它技巧构造CSP-J2026模拟动态规划

[CSP-J 2026 模拟一] 双面卡片(cards)

题目描述

桌上从左到右摆着 nn 张双面卡片。第 ii 张卡片正面写着整数 aia_i,反面写着整数 bib_i。

你需要让每张卡片选择一面朝上,得到序列 x1,x2,…,xnx_1,x_2,\ldots,x_n,其中 xi∈{ai,bi}x_i\in\{a_i,b_i\}。

要求相邻两项满足

∣xi−xi−1∣≤D(2≤i≤n).|x_i-x_{i-1}|\le D\qquad(2\le i\le n).

如果存在合法方案,请输出所有合法序列中字典序最小的一个;如果不存在,输出 -1。

两个等长整数序列的字典序比较方式与字符串类似:在第一个不同的位置,数值较小的序列字典序更小。

输入格式

第一行两个整数 n,Dn,D。

接下来 nn 行,第 ii 行两个整数 ai,bia_i,b_i。

输出格式

若无解,输出一行 -1。

否则输出一行 nn 个整数,表示字典序最小的合法序列。

样例

4 3
1 4
5 2
3 8
6 5
1 2 3 5

数据范围

  • 1≤n≤2×1051\le n\le 2\times 10^5;
  • 0≤D≤2×1090\le D\le 2\times10^9;
  • −109≤ai,bi≤109-10^9\le a_i,b_i\le 10^9。
测试点 分值 特殊限制
1--2 20 n≤20n\le 20
3--5 30 D=0D=0
6--10 50 无额外限制