/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package hadice; /** * * @author kormanec4 */ public class Hadice { /** * @param args the command line arguments */ new Program(); } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package hadice; import java.util.ArrayList; import java.util.Scanner; /** * * @author kormanec4 */ class Program { private Uzol hlavny; private ArrayList<Uzol> rad; private ArrayList<Integer> vysledky; public Program() { while (sc.hasNextInt()) { int pocUzlov = sc.nextInt(); hlavny = new Uzol(sc.nextInt(), null, 1001); rad.add(hlavny); int[][] nacitanie = new int[pocUzlov - 1][3]; for (int i = 0; i < (pocUzlov - 1); i++) { nacitanie[i][0] = sc.nextInt(); nacitanie[i][1] = sc.nextInt(); nacitanie[i][2] = sc.nextInt(); } while (!rad.isEmpty()) { Uzol aktualny = rad.get(0); for (int[] prem : nacitanie) { if (prem[0] == aktualny.getNazov()) { Uzol uzol = new Uzol(prem[1], aktualny, prem[2]); rad.add(uzol); aktualny.pridajPotomka(uzol); prem[1] = 0; } else if (prem[1] == aktualny.getNazov()) { Uzol uzol = new Uzol(prem[0], aktualny, prem[2]); rad.add(uzol); aktualny.pridajPotomka(uzol); prem[0] = 0; } } rad.remove(0); } vysledky.add(hlavny.prejdiPotomkov()); } } } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package hadice; import java.util.ArrayList; /** * * @author kormanec4 */ class Uzol { private int nazov; private int odpor; private Uzol predok; public Uzol(int nazov, Uzol predok, int odpor) { this.nazov = nazov; this.predok = predok; this.odpor = odpor; } public int getOdpor() { return odpor; } public void setOdpor(int odpor) { this.odpor = odpor; } public Uzol getPredok() { return predok; } public ArrayList<Uzol> getPotomkovia() { return potomkovia; } public void pridajPotomka(Uzol potomok) { potomkovia.add(potomok); } public boolean jeKonecny() { return potomkovia.isEmpty(); } int getNazov() { return nazov; } void vymazPotomkov() { while (!potomkovia.isEmpty()) { potomkovia.remove(0); } } // void prejdiPotomkov() { // if (potomkovia.isEmpty()) { // } else { // boolean pom = true; // for (Uzol uzol : potomkovia) { // uzol.prejdiPotomkov(); // } // if (pom) { // int odporPotomkov = 0; // for (Uzol uzol1 : potomkovia) { // odporPotomkov += uzol1.getOdpor(); // } // if (odporPotomkov < odpor) { // odpor = odporPotomkov; // } // // } // // vymazPotomkov(); // } //} int prejdiPotomkov() { if (potomkovia.isEmpty()) { return odpor; } else { int pomOdpory=0; for (Uzol uzol : potomkovia) { pomOdpory += uzol.prejdiPotomkov(); } vymazPotomkov(); return (odpor<pomOdpory?odpor:pomOdpory); } } }