本文共 1001 字,大约阅读时间需要 3 分钟。
#include#include #include #include using namespace std;const int n_max = 100 + 5;const int INF = 0x3fffffff;int n, k;int paint[n_max];int main(){ while(~scanf("%d %d", & n, & k)) { int max_paint = 0; int min_paint = INF; for(int i = 0; i < n; i ++) { scanf("%d", & paint[i]); max_paint = max(max_paint, paint[i]); min_paint = min(min_paint, paint[i]); } if(max_paint - min_paint > k) { printf("NO\n"); continue; } printf("YES\n"); for(int i = 0; i < n; i ++) { int j = 0; for(; j < paint[i] - 1; j ++) printf("%d ", j % k + 1); printf("%d\n", j % k + 1); } } return 0;}
:
在一个桌子上,有n堆石头,之后有k种颜色。第二行输入 每堆石头的数量。接下来就是涂色了。要求一堆的石头与其他任意一堆石头所有颜色种类差<=1。判断涂色是否可以(输出NO or YES)。之后输出n堆石头的涂色结果。
题解:
水题吧。就是判断什么时候输出no即可。之后就是每堆颜色要尽可能多(1,2,3,4,5….)。接下来就是考虑输出格式..
转载地址:http://fjtpi.baihongyu.com/