main() { long long n,m,i,j,k; scanf("%lld",&n); for (i=1;i<=n;i++) { scanf("%lld",&m); for (j=0;j<m;j++) scanf("%lld",&a[j]); k=swaper(a,m); printf("Optimal train swapping takes %lld swaps.\n",k); } return 0; }
void sort(void *base, size_t count, size_t width, int (*cmp)(const void *, const void *)) { size_t i, k; char *cbase = (char *)base; char *pc1, *pc2; for (i = 0; i < count - 1; ++i) for (k = 0; k < count - 1 - i; ++k) { pc1 = cbase + k * width; pc2 = cbase + (k + 1) * width; if (cmp(pc1, pc2) > 0) swaper(pc1, pc2, width); } }