#L3557. 「BalticOI 2021 Day0」Keyboard

「BalticOI 2021 Day0」Keyboard

题目描述

题目译自 BalticOI 20212021 Day00「Keyboard」,译者 cnyz。

本题官网数据压缩包疑似不完整或损坏,因此仅能评测部分完好数据,测试结果不保证准确。

有一个含 1N1\sim N 的整数集合 SS,同时有 MM 个数列 AA,第 ii 个数列长度为 KiK_i

试将集合 SS 分为 S0,S1S_0,S_1,记 L0L_0S0S_0 所含数的个数,L1L_1S1S_1 所含数的个数,要求 S0S1=S_0\cap S_1=\varnothingS0S1=SS_0\cup S_1=S,对于每一个数列 AA,都有 $\forall 1\le i<K_i,A_i\in S_j,A_{i+1}\in S_{j\oplus1}$,且 L0L1|L_0-L_1| 最小。

如果有一种可行的方案,请输出最小的 L0L1|L_0-L_1|,否则,请输出 impossible。

输入格式

第一行两个整数 N,MN,M

接下来 MM 行,每行 Ki+1K_i+1 个整数,第一个整数为 KiK_i,后面 KiK_i 个整数描述一个数列 AA

输出格式

仅输出一行,如果有一种可行的方案,请输出最小的 L0L1|L_0-L_1|,否则,请输出 impossible。

26 3
6 19 5 3 15 14 4
7 22 9 18 20 21 1 12
3 2 15 9

0
26 2
5 8 5 12 12 15
5 23 15 18 12 4 9

impossible

数据规模与约定

对于所有数据 1N1061\le N\le 10^6M1M\ge 1Ki2K_i\ge 2K1+K2++KM106K_1+K_2+\ldots+K_M\le 10^6