TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P4323
  • 题目
  • P4323机房排座
    限制 : 时间限制 : 1000 MS   空间限制 : 165536 KB
    问题描述

    NK中学的信竞机房可以看做一个N*M的网格。每个格子里有一台电脑,可以安排一名同学就座。 

    在信竞集训期间,何老板每天都要给同学们安排座位,要求同班同学不能相邻(上下左右四个方向),这项繁重的工作让他很是烦恼。
        今天共有k个班的同学来机房训练(编号1到k),其中i号班的同学有Ci名。同学们恰好可以把机房坐满,也就是C1+C2+...+Ck=N*M。
        何老板想知道,能否找到一种可行的排座方案。

    输入格式

    第一行,3 个整数 N, M, K
    第二行,K个空格间隔的整数,依次表示每个班的人数。

    输出格式

    一个N*M的数字矩阵,表示座位安排情况,矩阵中每个数字对应一个学生的班级。 如果有解,输出任意一个。 如果无解,矩阵的数字全为0。

    样例输入 1

    1 5 2
    4 1

    样例输出 1

    0 0 0 0 0

    样例输入 2

    3 3 4
    1 2 2 4

    样例输出 2

    4 3 4
    2 1 2
    4 3 4

    样例输入 3

    3 2 3
    2 2 2

    样例输出 3

    1 2
    2 3
    3 1

    提示

    【Hint】

    对于 30% 的测试数据,满足 0 < N, M ≤ 10,  0 < K ≤ N × M

    对于 80% 的测试数据,满足 0 < N, M ≤ 50,  0 < K ≤ N × M

    对于 100% 的测试数据,满足 0 < N, M ≤ 100,  0 < K ≤ N × M