有两队选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,经过抽签决定比赛对手名单。规定A不和J比赛, M不和D及E比赛。列出所有可能的比赛名单。
源程序:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char m[5] = { 'A','B','C','D','E' };
char n[5] = { 'J','K','L','M','N' };
int ary[5] = { 1,2,3,4,5 };
do {
if (ary[0] != 1 && ary[3] != 4 && ary[4] != 4) {
for (int i = 0; i < 5; i++)
cout << m[i] << " ";
cout << endl;
for (int i = 0; i < 5; i++)
cout << n[ary[i] - 1] << " ";
cout << endl << endl;
}
} while (next_permutation(ary, ary + 5));
return 0;
}