UVa 299 - Train Swapping

时间:2023-03-09 12:51:37
UVa 299 - Train Swapping

  题目大意:给n个数的一个序列,通过交换相邻的两个数使得这n个数按照从小到大的顺序排列。

  Inversion index problem: count how many swaps are needed to make the list sorted. 使用冒泡排序解决。

 #include <cstdio>

 int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
int T;
scanf("%d", &T);
int a[];
while (T--)
{
int n;
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d", &a[i]);
int swap = ;
for (int i = n; i > ; i--)
for (int j = ; j+ < i; j++)
if (a[j] > a[j+])
{
int t = a[j];
a[j] = a[j+];
a[j+] = t;
swap++;
}
printf("Optimal train swapping takes %d swaps.\n", swap);
}
return ;
}