Go to diff to previous submission
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author cteam94 */ public class FN { while ((new FN()).readLine(br)); } if (line == null) { return false; } for (int i = 1; i <= n1; i++) { map.put(i, new HashSet<Integer>()); } for (int i = 0; i < n2; i++) { Set<Integer> l = map.get(u); l.add(v); l = map.get(v); l.add(u); } //System.out.println(map); while (true) { int pows = 0; int x = -1; if (!boolean1) { x = integer; break; } } if (x == -1) { break; } pows = pows(x); //System.out.println(pows); if (pows == 4) { return true; } } return true; } public boolean isPow(int x) { if (map.get(x).size() == 1) { return true; } return false; } public int pows(int x) { int pows = 0; if (isPow(x)) { pows++; } Set<Integer> sus = map.get(x); if (!nav.get(v)) pows += pows(v); } return pows; } } // // for (Map.Entry<Integer, Set<Integer>> entry : map.entrySet()) { // int c = 0; // Integer integer = entry.getKey(); // Set<Integer> list = entry.getValue(); // for (Integer v : list) { // if (isPow(v)) { // c++; // } // // } // if (c == 4) { // System.out.println("YES"); // return true; // } // }
--- c5.s694.cteam094.fn.java.0.FN.java +++ c5.s855.cteam094.fn.java.0.FN.java @@ -21,4 +21,5 @@ Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); + Map<Integer, Boolean> nav = new HashMap<Integer, Boolean>(); public static void main(String[] args) throws IOException { @@ -43,4 +44,5 @@ for (int i = 1; i <= n1; i++) { map.put(i, new HashSet<Integer>()); + nav.put(i, Boolean.FALSE); } @@ -60,15 +62,22 @@ //System.out.println(map); - for (Map.Entry<Integer, Set<Integer>> entry : map.entrySet()) { - int c = 0; - Integer integer = entry.getKey(); - Set<Integer> list = entry.getValue(); - for (Integer v : list) { - if (isPow(v)) { - c++; + while (true) { + int pows = 0; + int x = -1; + for (Map.Entry<Integer, Boolean> entry : nav.entrySet()) { + Integer integer = entry.getKey(); + Boolean boolean1 = entry.getValue(); + if (!boolean1) { + x = integer; + break; } - } - if (c == 4) { + if (x == -1) { + break; + } + + pows = pows(x); + //System.out.println(pows); + if (pows == 4) { System.out.println("YES"); return true; @@ -86,3 +96,36 @@ return false; } + + public int pows(int x) { + nav.put(x, Boolean.TRUE); + + int pows = 0; + if (isPow(x)) { + pows++; + } + + + Set<Integer> sus = map.get(x); + for (Integer v : sus) { + if (!nav.get(v)) pows += pows(v); + } + return pows; + } } + +// +// for (Map.Entry<Integer, Set<Integer>> entry : map.entrySet()) { +// int c = 0; +// Integer integer = entry.getKey(); +// Set<Integer> list = entry.getValue(); +// for (Integer v : list) { +// if (isPow(v)) { +// c++; +// } +// +// } +// if (c == 4) { +// System.out.println("YES"); +// return true; +// } +// }