Source code for submission s1071

Go to diff to previous submission

FQ.java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package fq;
  6.  
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.util.ArrayList;
  10. import java.util.Scanner;
  11.  
  12. /**
  13.  *
  14.  * @author drevenak3
  15.  */
  16. public class FQ {
  17.  
  18. private static ArrayList<Integer> smerniky = new ArrayList<Integer>();
  19. private static ArrayList<Integer> okolia = new ArrayList<Integer>();
  20. /**
  21.   * @param args the command line arguments
  22.   */
  23. public static void main(String[] args) {
  24. Scanner scan = new Scanner(System.in);
  25.  
  26.  
  27.  
  28. int n, u, v, hlavny;
  29. while (scan.hasNext()) {
  30. smerniky.clear();
  31. okolia.clear();
  32. n = scan.nextInt();
  33. hlavny = scan.nextInt();
  34. int[][] pole = new int[n + 1][n + 1];
  35. for (int i = 1; i <= n-1; i++) {
  36. u = scan.nextInt();
  37. v = scan.nextInt();
  38. int c=scan.nextInt();
  39. pole[u][v] = c;
  40. pole[v][u] = c;
  41. }
  42. int p=0;
  43. for(int i=1;i<=n;++i){
  44. smerniky.add(p);
  45. for(int j=1;j<=n;++j){
  46. if(pole[i][j]!=0){
  47. okolia.add(j);
  48. ++p;
  49. }
  50. }
  51. }
  52. smerniky.add(p);
  53. int e=0;
  54. for(int i=smerniky.get(hlavny-1);i<smerniky.get(hlavny);++i){
  55. e+=enrgiaVetvy(pole,hlavny,okolia.get(i));
  56. }
  57. System.out.println(e);
  58. }
  59. }
  60.  
  61. public static int enrgiaVetvy(int [][]paPole,int paZ,int paDo){
  62. int cestaPrisiel=paPole[paDo][paZ];
  63. int cestaZ=0;
  64. for(int i=smerniky.get(paDo-1);i<smerniky.get(paDo);++i){
  65. if(paZ!=okolia.get(i))
  66. cestaZ+=enrgiaVetvy(paPole,paDo,okolia.get(i));
  67. }
  68. if(cestaZ==0){
  69. return cestaPrisiel;
  70. }
  71. return Math.min(cestaPrisiel, cestaZ);
  72. }
  73. }
  74.  

Diff to submission s987

FQ.java

--- c5.s987.cteam083.fr.java.0.FQ.java
+++ c5.s1071.cteam083.fr.java.0.FQ.java
@@ -7,4 +7,5 @@
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.util.ArrayList;
 import java.util.Scanner;
 
@@ -15,4 +16,6 @@
 public class FQ {
 
+    private static ArrayList<Integer> smerniky = new ArrayList<Integer>();
+    private static ArrayList<Integer> okolia = new ArrayList<Integer>();
     /**
      * @param args the command line arguments
@@ -20,6 +23,11 @@
     public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);
+                
+        
+        
         int n,  u, v,  hlavny;
         while (scan.hasNext()) {
+            smerniky.clear();
+            okolia.clear();
             n = scan.nextInt();
             hlavny = scan.nextInt();
@@ -32,10 +40,19 @@
                 pole[v][u] = c;
             }
-            int e=0;
+            int p=0;
             for(int i=1;i<=n;++i){
-                if(pole[hlavny][i]!=0){
-                    e+=enrgiaVetvy(pole,hlavny,i);
+                smerniky.add(p);
+                for(int j=1;j<=n;++j){
+                    if(pole[i][j]!=0){
+                        okolia.add(j);
+                        ++p;
+                    }
                 }
             }
+            smerniky.add(p);
+            int e=0;
+            for(int i=smerniky.get(hlavny-1);i<smerniky.get(hlavny);++i){
+                e+=enrgiaVetvy(pole,hlavny,okolia.get(i));
+            }
             System.out.println(e);
         }
@@ -43,10 +60,9 @@
     
     public static int enrgiaVetvy(int [][]paPole,int paZ,int paDo){
-        int  cestaPrisiel=paPole[paDo][paZ];
+        int cestaPrisiel=paPole[paDo][paZ];
         int cestaZ=0;
-        for(int i=1;i<paPole.length;++i){
-            if(paPole[paDo][i]!=0&&i!=paZ){
-                cestaZ+=enrgiaVetvy(paPole,paDo,i);
-            }
+        for(int i=smerniky.get(paDo-1);i<smerniky.get(paDo);++i){
+            if(paZ!=okolia.get(i))
+                cestaZ+=enrgiaVetvy(paPole,paDo,okolia.get(i));
         }
         if(cestaZ==0){