fork download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int t, ile, minimum, numer_min;
  6.  
  7. int main()
  8. {
  9. cin >> t;
  10. for (int i=0; i<t; i++)
  11. {
  12. cin >> ile;
  13. int wejsciowa[ile], wzorcowa[ile], delta[ile];
  14. for (int j=0; j<ile; j++)
  15. {
  16. cin >> wejsciowa[j];
  17. wzorcowa[j]=j+1;
  18. delta[j]=0;
  19. }
  20. for (int j=0; j<ile; j++)
  21. {
  22. for (int k=0; k<ile; k++)
  23. {
  24. delta[j]+=abs(wzorcowa[k]-wejsciowa[(j+k)%ile]);
  25. }
  26. }
  27. minimum=delta[0];
  28. numer_min=0;
  29. for (int j=0; j<ile; j++)
  30. {
  31. if (delta[j]<minimum)
  32. {
  33. numer_min=j;
  34. minimum=delta[j];
  35. }
  36. }
  37. for (int j=0; j<ile; j++)
  38. {
  39. cout << wejsciowa[(j+numer_min)%ile] << " ";
  40. }
  41. cout << endl;
  42. }
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 4548KB
stdin
8
3
1 2 3
3
2 1 3
3
1 3 2
3
3 2 1
6
5 6 1 2 3 4 
6 
3 6 1 2 4 5 
5 
3 2 1 4 5 
8 
7 1 2 4 6 5 3 8
stdout
1 2 3 
2 1 3 
1 3 2 
2 1 3 
1 2 3 4 5 6 
1 2 4 5 3 6 
3 2 1 4 5 
1 2 4 6 5 3 8 7