#P12566. [UOI 2023] An Array and Several More Arrays

[UOI 2023] An Array and Several More Arrays

Description

kk 个整数数组 a1,a2,,aka_1, a_2, \ldots, a_k,其中第 ii 个数组包含 lil_i 个元素。设 n=l1+l2++lkn = l_1 + l_2 + \ldots + l_k

你需要找到 kk 个整数 d1,d2,,dkd_1, d_2, \ldots, d_k,使得所有 (ai,j+di)(a_{i,j} + d_i) 两两不同且满足 1ai,j+din1 \leq a_{i,j} + d_i \leq n

Input Format

第一行包含两个整数 nnkk1n1041 \le n \le 10^41k51 \le k \le 5)——分别表示所有数组的元素总数和数组的数量。

接下来的 kk 行描述这些数组。第 ii 行包含一个整数 lil_i1lin1 \le l_i \le n)和 lil_i 个整数 ai,1,ai,2,,ai,lia_{i,1}, a_{i,2}, \ldots, a_{i,l_i}1ai,jn1 \le a_{i,j} \le n)——分别表示第 ii 个数组的长度和元素。

保证 n=l1+l2++lkn = l_1 + l_2 + \ldots + l_k

Output Format

如果不存在满足条件的 dd,输出一行 No

否则,第一行输出 Yes

第二行输出 kk 个整数 d1,d2,,dkd_1, d_2, \ldots, d_k——这些值需要加到对应数组的元素上,以形成 11nn 之间的 nn 个不同的整数。

如果有多个正确答案,输出任意一个即可。

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

Hint

在第一个样例中,d=[0,0,0,0,0]d = [0,0,0,0,0] 满足条件,因为加上对应值后,数组变为 [1][1][2][2][3][3][4][4][5][5]

在第二个样例中,d=[1,5,1,1]d = [1,-5,1,1] 满足条件,因为加上对应值后,数组变为 [3,4][3,4][1][1][5][5][2,6][2,6]

在第三个样例中,d=[0,1]d = [0,1] 满足条件,因为加上对应值后,数组变为 [1,4,5,6][1,4,5,6][2,3,7][2,3,7]

评分标准

  • 88 分):k=1k=1
  • 99 分):对于 1ik1 \le i \le k1j<li1 \le j < l_i,满足 ai,j+1=ai,j+1a_{i,j}+1=a_{i,j+1}
  • 1515 分):k2k \le 2
  • 2121 分):k3k \le 3
  • 1010 分):对于 1ik1 \le i \le k1j<li1 \le j < l_i,满足 ai,j+2=ai,j+1a_{i,j}+2=a_{i,j+1}
  • 1010 分):对于 1ik1 \le i \le k,满足 $(\max_{j \in [1;l_i]} a_{i,j}) - (\min_{j \in [1;l_i]} a_{i,j})=(n-k)$;
  • 1010 分):n30n \le 30
  • 1717 分):无额外限制。

翻译由 DeepSeek V3 完成