AT_kupc2020_d Stick Combination

题目描述

你有 $N$ 根棒子,长度分别为 $1, 3, 5, 7, \ldots, 2N-1$。你的任务是用胶水将这些棒子粘接在一起,以便获得若干等长的棒子,并且至少要剩下两根长度相同的棒子。 如果可以实现,请输出任意一种粘接方案;如果无法做到,请输出 `impossible`。 注意,粘接过程中,每根新棒子的长度是粘接的原始棒子长度之和。你不能丢弃或切断任何棒子。

输入格式

标准输入中包含一个整数 $N$,表示原始的棒子数。

输出格式

如果存在满足条件的粘接方案,第一行输出粘接后的棒子数 $M$。接下来的 $M$ 行,每行描述一根新棒子: - 每行第一个数字是该根棒子由多少根原始棒子粘接而成 $l_m$; - 接着输出这 $l_m$ 根原始棒子的长度,用空格分隔。 输出中允许有多个符合条件的方案,只需输出任意一个即可。 如果不存在符合条件的方案,输出 `impossible`。

说明/提示

- 输入保证为整数。 - $2 \leq N \leq 10^5$ ### 说明 示例1:可以将长度为 $1, 3, 5, 7$ 的棒子分别粘接成两个长为 $8$ 的棒子($1+7$ 和 $3+5$)。 示例2:仅有长度为 $1$ 和 $3$ 的两根棒子时,无法粘接成两根或更多相同长度的棒子。 示例3:即使有三根长度为 $1, 3, 5$ 的棒子,依然不能找到满足条件的粘接方法。 **本翻译由 AI 自动生成**