fork(1) download
  1. /* package whatever; // 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 Ideone
  9. {
  10. public static void main(String[] args) throws java.lang.Exception
  11. {
  12. //Scanner scan = new Scanner(System.in);
  13. int instancias = Integer.parseInt(br.readLine());
  14. int count = 0;
  15.  
  16. while(instancias != 0)
  17. {
  18. count = 0;
  19. boolean possible = true;
  20. boolean impossible = false;
  21.  
  22. st = new StringTokenizer(br.readLine());
  23.  
  24. int numSoldados = Integer.parseInt(st.nextToken());
  25. int distancia = Integer.parseInt(st.nextToken());
  26. int[] listaSoldados = new int[numSoldados];
  27.  
  28. st = new StringTokenizer(br.readLine());
  29.  
  30. //Inserir altura dos soldados em uma lista
  31. for (int i = 0; i < numSoldados; i++)
  32. {
  33. listaSoldados[i] = Integer.parseInt(st.nextToken());
  34. }
  35.  
  36. while(possible)
  37. {
  38. possible = false;
  39.  
  40. for (int i = 0; i < numSoldados; i++)
  41. {
  42. if(numSoldados - (i + distancia) >= 1)
  43. {
  44. int alturaPS = listaSoldados[i];
  45. int alturaSS = listaSoldados[i + distancia];
  46.  
  47. if(alturaPS > alturaSS)
  48. {
  49. listaSoldados[i] = alturaSS;
  50. listaSoldados[i + distancia] = alturaPS;
  51. count = count + 1;
  52. possible = true;
  53. }
  54. }
  55. else
  56. {
  57. if(!possible)
  58. {
  59. for (int j = 0; j < numSoldados - 1; j++)
  60. {
  61. if(listaSoldados[j] > listaSoldados[j+1])
  62. {
  63. impossible = true;
  64. break;
  65. }
  66. }
  67.  
  68. break;
  69. }
  70.  
  71. break;
  72. }
  73. }
  74. }
  75.  
  76. if(impossible)
  77. System.out.println("impossivel");
  78. else
  79. System.out.println(count);
  80.  
  81. instancias--;
  82. }
  83. }
  84. }
Success #stdin #stdout 0.1s 320512KB
stdin
3
4 2
3 4 1 2
4 1
4 3 2 1
4 2
7 3 6 5
stdout
2
6
impossivel