在vc++中如何做这种排列?
1. 排列雪碧瓶
问题描述:
有一个格子为5*5的雪碧瓶架,有的格内是已饮用完雪碧的空瓶,有的格内是未饮用过的盛满雪碧的雪碧瓶,分别用0与1表示。今将此格子各行从左到右抄下,各列从上到下抄下,得到十组0和1,每组五个数字,占据一行。不慎将这十行数据的顺序弄乱,并且丢失了一行数据。经回忆,确认5列的数据和顶行的数据未失。请根据已有的9行信息恢复原来的5*5雪碧瓶架上的排列情况。
输入
输入有若干组测试数据,对每一个测试数据占9行,每行有5个数据。两组测试数据之间有一个空行。输入直到文件输入结束。
输出
对每一组测试数据,在一行上先输出“Case #:”,其中“#”是测试数据集的编号(从1开始),接着在下面的输出恢复后的排列结果:每种情形输出5行,每行5个数字(在每个数字输出一个空格,包括第5个数字后无空格)。不同数据集的结果之间空一行。若无法恢复原来的排列情况,则输出Error.(注测试数据的答案均是唯一的或者Error.)
输入样例
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 1 0 1
0 1 1 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 0 1
输出样例
Case 1:
0 1 0 0 1
1 0 1 0 1
1 1 1 1 1
1 1 0 1 0
0 0 1 0 1