#P17001. [NWERC 2019] Canvas Line

[NWERC 2019] Canvas Line

背景

译自 Northwestern Europe Regional Contest (NWERC) 2019

题目描述

你的朋友 Charmion 请你帮她把一些画布挂在一根笔直的晾绳上晾干,这是她正在进行的艺术项目的一部分。

这些画布被巧妙地排列,使得它们彼此不重叠,不过它们可以在边界处相接。为了稳定,每张画布必须由两个夹子固定;但由于画布非常坚硬,夹子可以夹在画布上的任意位置。

每张画布的宽度都是整数厘米,并且至少为 1010 厘米。每个夹子的宽度略小于 11 厘米。画布和夹子都放在晾绳上的整数厘米位置。

任何不必要的物体接触画布都有弄脏画布的风险,因此每张画布必须恰好被两个夹子夹住,不多也不少。给定晾绳上已经存在的所有夹子,请你放置尽可能少的额外夹子,使得所有画布都被正确固定。

:::align{center}

:::

上图展示了样例 22 的一种解法。已有夹子用白色标出。

输入格式

输入包含:

  • 第一行包含一个整数 nn (1n1031 \le n \le 10^3),表示晾绳上的画布数量。
  • 接下来 nn 行,第 ii 行包含两个整数 i\ell_irir_i (0i<ri1090 \le \ell_i < r_i \le 10^9i+10ri\ell_i+10\le r_i),表示第 ii 张画布左右端点的位置,单位为厘米。
  • 接下来一行包含一个整数 pp (0p21030 \le p \le 2\cdot 10^3),表示已经使用的夹子数量。
  • 接下来一行包含 pp 个整数 x1,,xpx_1,\ldots,x_p (0xi<xi+11090\le x_i<x_{i+1}\le 10^9),表示每个已有夹子的位置。

画布按从左到右的顺序给出,并且至多只会在边界处相接,即对每个 ii 都有 rii+1r_i\le \ell_{i+1}

输出格式

如果可以固定所有画布,先输出需要额外添加的夹子的最小数量。下一行输出所有新夹子的整数位置。

否则,输出 impossible

若存在多个最优解,输出任意一个即可。

4
0 18
18 28
28 40
49 60
4
6 12 35 60
3
28 19 49
5
2 15
15 25
25 40
42 52
52 62
3
5 29 52
4
15 25 49 58
3
0 60
60 120
120 140
4
20 60 80 120
impossible

提示

【数据规模与约定】

  • 1n1031 \le n \le 10^3
  • 0i<ri1090 \le \ell_i < r_i \le 10^9,且 i+10ri\ell_i+10\le r_i
  • 画布按从左到右顺序给出,并满足 rii+1r_i\le \ell_{i+1}
  • 已有夹子数 0p21030 \le p \le 2\cdot 10^3
  • 已有夹子位置满足 0xi<xi+11090\le x_i < x_{i+1}\le 10^9
  • 若存在多个最优解,输出任意一个即可。