题意:总共7个和尚,编号从1到7,星期的编号也是1到7,在一个星期中每个和尚在固定的某一天或几天挑水,求所有安排方案,使得每个和尚在一个星期中都有且仅有在其中某一天挑水。
举例: 和尚1 在星期2和星期4挑水
和尚2在星期1和星期6挑水
和尚3在星期3和星期7挑水
和尚4在星期5挑水
和尚5在星期1、星期4和星期6挑水
和尚6在星期2和星期5挑水
和尚7在星期3、星期6和星期7挑水
所有的安排方案有四种:
和尚2在星期1挑水,和尚6在星期2挑水,和尚3在星期3挑水,和尚1在星期4挑水,和尚4在星期5挑水,和尚5在星期6挑水,和尚7在星期7挑水
和尚2在星期1挑水,和尚6在星期2挑水,和尚7在星期3挑水,和尚1在星期4挑水,和尚4在星期5挑水,和尚5在星期6挑水,和尚3在星期7挑水
和尚5在星期1挑水,和尚6在星期2挑水,和尚3在星期3挑水,和尚1在星期4挑水,和尚4在星期5挑水,和尚2在星期6挑水,和尚7在星期7挑水
和尚5在星期1挑水,和尚6在星期2挑水,和尚7在星期3挑水,和尚1在星期4挑水,和尚4在星期5挑水,和尚2在星期6挑水,和尚3在星期7挑水
请编程实现,输入为7行,每行用7个数字0或者1表示,每个数字之间用空格隔开,0表示该和尚当天不跳水,1表示该和尚当天挑水。输出首先第一行是方案数,后面每一行输出一种方案,每个方案用7个和尚编号表示,每个数字用空格隔开,方案之间按照和尚编号的大小进行排序。
输入样例:
0 1 0 1 0 0 0
1 0 0 0 0 1 0
0 0 1 0 0 0 1
0 0 0 0 1 0 0
1 0 0 1 0 1 0
0 1 0 0 1 0 0
0 0 1 0 0 1 1
输出样例:
4
2 6 3 1 4 5 7
2 6 7 1 4 5 3
5 6 3 1 4 2 7