题目地址:点击打开链接
C++代码:
#include <iostream>
using namespace std;
const int maxsize=100;
int main()
{
int cas;
while(cin>>cas)
{
while(cas--)
{
int n;
cin>>n;
int a[maxsize];
int i;
for(i=0;i<n;++i)
cin>>a[i];
int flag=0;
int num=0;
int j;
for(i=0;i<n-1;++i)
{
for(j=0;j<n-i-1;++j)
{
if(a[j]>a[j+1])
{
++flag;
int x;
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
num+=flag;
if(flag==0)
break;
flag=0;
}
cout<<"Optimal train swapping takes "<<num<<" swaps."<<endl;
}
}
return 0;
}