CF439C Devu and Partitioning of the Array
题目描述
Devu 是个小孩,他非常喜欢玩耍,但只喜欢和数组玩。在玩耍的过程中,他想到一个有趣的问题却无法解决,你能帮他解答吗?
给定一个由互不相同的整数构成的数组。是否可以将整个数组划分为 $k$ 个互不相交且非空的部分,使得其中有 $p$ 个部分的元素和为偶数(每一部分的和必须为偶数),其余 $k-p$ 个部分的和为奇数?(注意,这些部分不要求连续。)
如果可以,请给出一种符合要求的划分方案。
输入格式
第一行包含三个用空格分隔的整数 $n$、$k$、$p$($1 \leq k \leq n \leq 10^{5};\ 0 \leq p \leq k$)。
第二行包含 $n$ 个用空格分隔的互不相同的整数,表示数组 $a$ 的内容:$a_{1}, a_{2}, ..., a_{n}$($1 \leq a_{i} \leq 10^{9}$)。
输出格式
若存在满足条件的划分,请在第一行输出 "YES"(不含引号);
否则输出 "NO"(不含引号)。
如果存在要求的划分方式,请在第一行后输出 $k$ 行,每行表示一部分的内容。第 $i$ 行首先输出该部分的元素个数,然后以任意顺序输出该部分所有元素。划分中必须恰好有 $p$ 个部分和为偶数,其余 $k-p$ 个部分和为奇数。
若存在多种划分方式,你可以输出任意一种合法的方案。
说明/提示
由 ChatGPT 5 翻译