CF509B Painting Pebbles

题目描述

桌子上有 $n$ 堆石子,第 $i$ 堆有 $a_{i}$ 个石子。你的任务是使用 $k$ 种给定的颜色中的一种为每个石子着色,使得对于每种颜色 $c$,任意两堆 $i$ 和 $j$,第 $i$ 堆和第 $j$ 堆中颜色为 $c$ 的石子数量之差的绝对值不超过 $1$。 换句话说,记 $b_{i,c}$ 为第 $i$ 堆中颜色为 $c$ 的石子的数量。那么对于任意 $1 \leq c \leq k$,$1 \leq i, j \leq n$,都必须满足 $|b_{i,c} - b_{j,c}| \leq 1$。不要求所有 $k$ 种颜色都必须使用:如果颜色 $c$ 在第 $i$ 堆没有使用,则 $b_{i,c}$ 视为 $0$。

输入格式

输入第一行包含两个正整数 $n$ 和 $k$($1 \leq n, k \leq 100$),用空格分隔——分别表示石子堆的数量和颜色的数量。 第二行包含 $n$ 个正整数 $a_{1}, a_{2}, ..., a_{n}$($1 \leq a_{i} \leq 100$),表示每一堆中的石子个数。

输出格式

如果没有任何一种方案能满足题目要求,输出一行 "NO"(不含引号)。 否则,第一行输出 "YES"(不含引号)。接下来输出 $n$ 行,第 $i$ 行包含 $a_{i}$ 个用空格分隔的整数,第 $i$ 行的第 $j$ 个($1 \leq j \leq a_{i}$)整数表示第 $i$ 堆第 $j$ 个石子的颜色。如果存在多种方案,可以输出任意一种。

说明/提示

由 ChatGPT 5 翻译