UVa-299-Train Swapping
AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving ::Sorting/Searching
// 299 - Train Swapping #include <iostream> using namespace std; int main(void) { int i, j, t, k, N, L, times; int a[50]; while(cin >> N) { while(N--) { times = 0; cin >> L; for(k=0; k<L; k++) cin >> a[k]; for(t=1; t<L; t++) { i = t; for(j=i-1; j>=0; j--, i--) if(a[i] < a[j]) { swap(a[i], a[j]); times++; } } cout << "Optimal train swapping takes " << times << " swaps." << endl; } } return 0; }