Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. import java.util.List;
  2. import java.util.Scanner;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import java.util.ArrayList;
  7.  
  8.  
  9. public class Main {
  10. static int SW=0;
  11. static int POM;
  12. static int WSK=0;
  13. static class Krawedz
  14. {
  15. int waga;
  16. int poczatek, koniec;
  17. public Krawedz(int w, int b, int e)
  18. {
  19. waga = w;
  20. poczatek = b;
  21. koniec = e;
  22. }
  23. }
  24.  
  25. public static void main(String[] args) throws IOException {
  26.  
  27. Scanner odczyt = new Scanner(new File("In0303.txt"));
  28. PrintWriter zapis = new PrintWriter("Out0303.txt");
  29. String line = odczyt.nextLine();
  30. String[] first = line.split(" ");
  31. int n = Integer.parseInt(first[0]);
  32. int m = Integer.parseInt(first[1]);
  33. int[] Kruskal = new int[n+1];
  34. for(int i=1;i<=n;i++)
  35. {
  36. Kruskal[i]=i;
  37. }
  38.  
  39. int[] X = new int[n+1];
  40.  
  41. List<Krawedz> E = new ArrayList<Krawedz>();
  42. for(int i=0; i<n; i++)
  43. {
  44. line = odczyt.nextLine();
  45. String[] number = line.split(" ");
  46. for(int k=0; k<number.length; k++)
  47. number[k] = number[k].replace(",", "");
  48. for(int k=0; k<number.length; k+=2)
  49. {
  50. number[k] = number[k].replace(",", "");
  51. int w = Integer.parseInt(number[k+1]);
  52. int e = Integer.parseInt(number[k]);
  53. E.add(new Krawedz(w, i+1, e));
  54. }
  55. }
  56. //sprawdzenia max wagi
  57. int mw=0;
  58. for(Krawedz k: E)
  59. {
  60. if(mw<k.waga)mw=k.waga;
  61. }
  62.  
  63. List<Krawedz> Posortowana = new ArrayList<Krawedz>();
  64. for(int i=1;i<mw;i++)
  65. {
  66. for(Krawedz k:E)
  67. {
  68. if(k.waga==i){Krawedz n1 = new Krawedz(k.waga,k.poczatek,k.koniec); Posortowana.add(n1);}
  69. }
  70. }
  71. for(Krawedz k: Posortowana)
  72. {
  73. if(Kruskal[k.poczatek]!=Kruskal[k.koniec])
  74. {
  75. SW+=k.waga;
  76. zapis.print(k.poczatek+" "+k.koniec+" "+"["+k.waga+"]"+" ");
  77. int x,y;
  78. x=Kruskal[k.poczatek];y=Kruskal[k.koniec];
  79. if(Kruskal[k.poczatek]>Kruskal[k.koniec]){ for(int i=1;i<=n;i++){if(Kruskal[i]==x || Kruskal[i]==y)Kruskal[i]=x; } }
  80. else { for(int i=1;i<=n;i++){if(Kruskal[i]==x || Kruskal[i]==y)Kruskal[i]=y; } }
  81. }
  82. for(int i=1;i<=n;i++)
  83. {
  84. POM=Kruskal[i];
  85. if(Kruskal[i]==POM) WSK++;
  86. }
  87. if(WSK==( n-1) )break;
  88. WSK=0;
  89. }
  90. // for(Krawedz k: Posortowana)
  91. // {
  92. // System.out.println(k.poczatek+" "+k.koniec+" "+k.waga);
  93. // }
  94. for(int i=1;i<=n;i++)
  95. {
  96. System.out.println(Kruskal[i]);
  97. }
  98. zapis.println("SUMA WAG: "+SW);
  99. zapis.close();
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement