Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. package zadanie2;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5.  
  6.  
  7. public class Zad2 {
  8.  
  9. public static void main(String[] args) throws FileNotFoundException {
  10. Scanner sc = new Scanner(new File("OD_in_ps6_czernecki.txt"));
  11. PrintWriter pw = new PrintWriter(new File("OD_out_ps6_czernecki.txt"));
  12. int n = sc.nextInt();
  13. int[] station = new int[n];
  14. for (int i = 0; i < station.length; i++) {
  15. station[i] = sc.nextInt();
  16. }
  17. station = Sort.Mergesort_rec(station);
  18.  
  19. int sum = 0;
  20. for(int i = 0; i < station.length; ++i)
  21. {
  22. sum += Math.abs(station[station.length/2] - station[i]);
  23. }
  24. //System.out.println(sum);
  25. pw.print(station.length/2+1);
  26. pw.print(sum);
  27. pw.close();
  28. sc.close();
  29. }
  30.  
  31. }
  32.  
  33. class Sort {
  34.  
  35. static public int[] Mergesort_rec(int[] table)
  36. {
  37.  
  38. int[] Array1 = Arrays.copyOfRange(table, 0, ((table.length)/2));
  39. int[] Array2 = Arrays.copyOfRange(table, (table.length)/2, table.length);
  40.  
  41. if(Array1.length > 1)
  42. {
  43. Array1 = Mergesort_rec(Array1);
  44. }
  45. if(Array2.length > 1)
  46. {
  47. Array2 = Mergesort_rec(Array2);
  48. }
  49. if(Array1.length == 0)
  50. {
  51. return Array2;
  52. }
  53. else if(Array2.length == 0)
  54. {
  55. return Array1;
  56. }
  57. else
  58. {
  59. return Merge(Array1, Array2);
  60. }
  61. }
  62.  
  63. private static int[] Merge(int[] left, int[] right)
  64. {
  65. int i = 0;
  66. int j = 0;
  67. int i_margin = left.length;
  68. int j_margin = right.length;
  69. int[] MergeTable = new int[left.length + right.length];
  70. for(int k = 0; k < MergeTable.length; ++k)
  71. {
  72. if(left[i] < right[j])
  73. {
  74. MergeTable[k] = left[i];
  75. ++i;
  76. }
  77. else if(left[i] > right[j])
  78. {
  79.  
  80. MergeTable[k] = right[j];
  81. j++;
  82. }
  83. if(i == i_margin) // TUTAJ sprawdzam to przepelnienie po tych ifach wyzej a powinno byc odwrotnie i wtedy bym nei musial tych petli jebac w tym ifie i nastepnym <<
  84. {
  85. for(int l = (k+1); l < MergeTable.length; ++l)
  86. {
  87. MergeTable[l] = right[j];
  88. j++;
  89. }
  90. break;
  91. }
  92. else if(j == j_margin)
  93. {
  94. for(int l = (k+1); l < MergeTable.length; ++l)
  95. {
  96. MergeTable[l] = left[i];
  97. i++;
  98. }
  99. break;
  100. }
  101. }
  102. return MergeTable;
  103. }
  104.  
  105.  
  106.  
  107.  
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement