2 3 4
3 1vs2 2vs3 3vs1 3 1vs2 3vs4 1vs3 2vs4 1vs4 2vs3
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[105];
int main()
{
int t, n, m, i, j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i = 0; i < n; i++)
a[i] = i + 1;
if(n % 2 == 0)
{
printf("%d\n",n-1);
for(i = 1; i < n; i++)
{
int p = 1;
for(j = 0; j < n/2; j++)
{
if(p)
{
printf("%dvs%d",a[j], a[n-1-j]);
p = 0;
}
else
printf(" %dvs%d",a[j], a[n-1-j]);
}
printf("\n");
int tmp = a[1]; //固定第一个元素不变,只让后面的元素变换
for(j = 1; j < n-1; j++)
a[j] = a[j+1];
a[n-1] = tmp;
}
printf("\n");
}
else
{
printf("%d\n",n);
for(i = 0; i < n; i++)
{
int p = 1;
for(j = 0; j < n/2; j++)
{
if(p)
{
printf("%dvs%d",a[j], a[n-1-j]);
p = 0;
}
else
printf(" %dvs%d",a[j], a[n-1-j]);
}
printf("\n");
int tmp = a[0];
for(j = 0; j < n-1; j++)
a[j] = a[j+1];
a[n-1] = tmp;
}
printf("\n");
}
}
return 0;
}bnuoj 1068 比赛安排,布布扣,bubuko.com
原文:http://blog.csdn.net/lyhvoyage/article/details/21886661