fork(2) download
  1. /* package codechef; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Codechef
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. String str = br.readLine();
  13. int intTestCase = Integer.parseInt(str);
  14. for(int i = 0 ; i < intTestCase;i++ ){
  15. String lengthOfStr = br.readLine();
  16. boolean value = false;
  17. String intputString = br.readLine();
  18. StringBuilder buff = new StringBuilder(intputString);
  19. int reverse = 0;
  20. int indexMaxSwap = -1;
  21. for(int j = intputString.length() - 1 ; j >= 2; j=j-2){
  22. int tmp1 = intputString.charAt(j) - 48;
  23. int tmp2 = intputString.charAt(j-2) - 48;
  24. if(tmp1 > tmp2){
  25. int nextMax = tmp1;
  26. value = true;
  27. reverse = j;
  28. indexMaxSwap = j;
  29. for(int m = j+2; m < intputString.length() ; m+=2){
  30. int tmp3 = intputString.charAt(m)-48;
  31. if(tmp3 < nextMax && tmp3 > tmp2){
  32. nextMax = tmp3;
  33. indexMaxSwap = m;
  34. }
  35. }
  36. if(indexMaxSwap != -1){
  37. buff.setCharAt(indexMaxSwap,(char)(tmp2+48));
  38. buff.setCharAt(j-2,(char)(nextMax+48));
  39. }
  40. break;
  41. }
  42. }
  43. if(value){
  44. int minValue = 0;
  45. int indexToSwap = -1;
  46. for(int k=reverse;k <= intputString.length() - 2;k+=2){
  47. minValue = buff.charAt(k) - 48;
  48. for(int h = k +2; h <= intputString.length() - 1; h+=2){
  49. int tmp1 = buff.charAt(h) - 48;
  50. if(minValue > tmp1){
  51. minValue = tmp1;
  52. indexToSwap=h;
  53. }
  54. }
  55. if(indexToSwap != -1){
  56. buff.setCharAt(indexToSwap,(char) (buff.charAt(k)));
  57. buff.setCharAt(k, (char) (minValue+48));
  58. }
  59. indexToSwap = -1;
  60. }
  61. }
  62. if(value){
  63. String result = new String(buff);
  64. System.out.println(result.replaceAll(" ",""));
  65. }
  66. else{
  67. System.out.println("-1");
  68. }
  69. }
  70. }
  71. }
Success #stdin #stdout 0.06s 33544KB
stdin
8
5
1 5 4 8 3
10
1 4 7 4 5 8 4 1 2 6
7
2 7 9 9 8 7 3
3
3 1 2
3
1 3 2
4
2 9 9 2
3
1 2 3
5
1 1 1 1 1
stdout
15834
1474584162
2837799
321
213
9229
132
-1