#P16409. 机场连线计划
机场连线计划
机场连线计划
题目背景
航线规划师林澈正在为两个国家开通第一批跨境航班。一个国家的机场按字母序排列,另一个国家的机场也按字母序排列。每座机场能够承载的直达航班数量已经确定。林澈既要满足所有机场的容量限制,还要把最终方案整理成字典序最小的表格,方便航空公司审核。
题目描述
有 个 A 国机场和 个 U 国机场。现在要在两国机场之间安排若干条双向直达航线,要求:
- 每条航线连接一个 A 国机场和一个 U 国机场;
- 同一对机场之间至多安排一条航线;
- 每座机场连接的航线数量必须恰好等于其给定容量。
一个航线方案可以表示成一个 的 01 矩阵 :
- 表示第 个 A 国机场与第 个 U 国机场之间有航线;
- 表示二者之间没有航线。
矩阵的行按照 A 国机场的字母序排列,列按照 U 国机场的字母序排列。
比较两个不同的方案时,按照从上到下、从左到右的顺序寻找第一个不同的格子。在这个格子中填 0 的方案字典序更小。
请构造满足所有要求的字典序最小方案。
输入格式
第一行包含两个整数 ,分别表示 A 国机场和 U 国机场的数量。
第二行包含 个整数:
其中 表示第 个 A 国机场的容量。
第三行包含 个整数:
其中 表示第 个 U 国机场的容量。
输出格式
若不存在满足要求的航线方案,输出一行:
-1
否则输出 行,每行一个长度为 的 01 字符串。第 行第 个字符表示矩阵中的 。
输出的方案必须是所有合法方案中字典序最小的一个。
样例 1
输入
3 3
1 2 3
3 1 2
输出
100
101
111
说明
本例只有这一种合法方案。
样例 2
输入
4 4
3 2 1 1
1 3 1 2
输出
0111
0101
0100
1000
说明
本例存在多个合法方案,输出的是其中字典序最小的一个。
样例 3
输入
4 4
1 2 3 4
5 6 7 8
输出
-1
说明
两国机场容量总和不同,因此不可能安排合法方案。
样例 4
输入
2 3
47 47
47 40 7
输出
-1
说明
同一对机场之间至多只有一条航线。A 国只有两个机场、U 国只有三个机场,因此每个 A 国机场最多只能连接三条航线,不可能达到容量 。
样例 5
输入
2 9
5 5
1 1 2 1 1 1 1 1 1
输出
001001111
111110000
样例 6
输入
4 6
0 0 0 0
0 0 0 0 0 0
输出
000000
000000
000000
000000
说明
输入容量可以为 。
数据范围
- ;
- 。