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