Untitled
unknown
plain_text
2 years ago
2.8 kB
8
Indexable
Never
import java.util.LinkedList; import java.util.List; /** * * @author novke */ public class Test1 { public static int resenje = -1; static Test1 t1 = new Test1(); /** * @param args the command line arguments */ public static void main(String[] args) { System.out.println("haha"); int[] A = {1000, 1000, 5, 5, 5, 2, 2, 2, 0, 0}; List<broj> lista = t1.napuni(A); ispisi(lista); isprazni(lista, 0); System.out.println(resenje + ""); } public class broj { public int koji; public int pon = 1; public broj(int i){ koji = i; } @Override public int hashCode() { int hash = 5; return hash; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final broj other = (broj) obj; return this.koji == other.koji; } } private List<broj> napuni(int[] niz){ List<broj> lista = new LinkedList<>(); for (int x: niz){ if (lista.contains(new broj(x))){ for (broj y: lista) if (x==y.koji){ y.pon++; break; } } else lista.add(new broj(x)); } return lista; } public static void ispisi(List<broj> l){ for (broj b: l) System.out.print(b.koji + " "); System.out.println(""); for (broj b: l) System.out.print(b.pon + " "); System.out.println(""); } public static boolean jelSveOk(List<broj> lista){ for (broj b1: lista){ for (broj b2: lista){ if (b1.pon==b2.pon && !b1.equals(b2)) return false; } } return true; } public static void isprazni(List<broj> lista, int rezultat){ for (int i = 0; i < lista.size(); i++){ for (int j = i; j < lista.size(); j++){ if (lista.get(i).pon==lista.get(j).pon && !lista.get(i).equals(lista.get(j))){ lista.get(i).pon--; rezultat++; if (lista.get(i).pon==0) lista.remove(i); if (jelSveOk(lista)) { resenje = rezultat; return; } else { isprazni(lista, rezultat); return; } } } } } }