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.Arrays; 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 { // Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); // Map<Integer, Boolean> nav = new HashMap<Integer, Boolean>(); while ((new FN()).readLine(br)); } if (line == null) { return false; } int pows = 0; boolean b = false; for (int i = 1; i <= n1; i++) { a[i] = 0; } for (int i = 0; i < n2; i++) { if (a[u] == 0) { for (int j = 1; j < n1+1; j++) { if (a[j] == 1) pows++; a[j] = 0; } if (pows == 4) b = true; } a[u]++; a[v]++; } for (int j = 1; j < n1 + 1; j++) { if (a[j] == 1) { pows++; } a[j] = 0; } if (pows == 4) { b = true; } return true; } } // public boolean readLine(BufferedReader br) throws IOException { // String line = br.readLine(); // if (line == null) { // return false; // } // // map = new HashMap<Integer, Set<Integer>>(); // // String[] sp = line.split(" "); // int n1 = Integer.parseInt(sp[0]); // int n2 = Integer.parseInt(sp[1]); // // for (int i = 1; i <= n1; i++) { // map.put(i, new HashSet<Integer>()); // nav.put(i, Boolean.FALSE); // } // // for (int i = 0; i < n2; i++) { // String ln = br.readLine(); // String[] sp2 = ln.split(" "); // int u = Integer.parseInt(sp2[0]); // int v = Integer.parseInt(sp2[1]); // // 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; // for (Map.Entry<Integer, Boolean> entry : nav.entrySet()) { // Integer integer = entry.getKey(); // Boolean boolean1 = entry.getValue(); // if (!boolean1) { // x = integer; // break; // } // } // if (x == -1) { // break; // } // // pows = pows(x); // //System.out.println(pows); // if (pows == 4) { // System.out.println("YES"); // return true; // } // } // // System.out.println("NO"); // // return true; // } // // public boolean isPow(int x) { // if (map.get(x).size() == 1) { // return true; // } // 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; // } // }
--- c5.s855.cteam094.fn.java.0.FN.java +++ c5.s1007.cteam094.fn.java.0.FN.java @@ -4,4 +4,5 @@ import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; @@ -20,6 +21,7 @@ public class FN { - Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); - Map<Integer, Boolean> nav = new HashMap<Integer, Boolean>(); + Integer[] a; +// 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 { @@ -29,5 +31,5 @@ while ((new FN()).readLine(br)); } - + public boolean readLine(BufferedReader br) throws IOException { String line = br.readLine(); @@ -36,15 +38,16 @@ } - map = new HashMap<Integer, Set<Integer>>(); - String[] sp = line.split(" "); int n1 = Integer.parseInt(sp[0]); int n2 = Integer.parseInt(sp[1]); - + + a = new Integer[n1+1]; + int pows = 0; + boolean b = false; + for (int i = 1; i <= n1; i++) { - map.put(i, new HashSet<Integer>()); - nav.put(i, Boolean.FALSE); + a[i] = 0; } - + for (int i = 0; i < n2; i++) { String ln = br.readLine(); @@ -52,65 +55,120 @@ int u = Integer.parseInt(sp2[0]); int v = Integer.parseInt(sp2[1]); - - Set<Integer> l = map.get(u); - l.add(v); - - l = map.get(v); - l.add(u); + + if (a[u] == 0) { + for (int j = 1; j < n1+1; j++) { + if (a[j] == 1) pows++; + a[j] = 0; + } + if (pows == 4) b = true; + + } + a[u]++; + a[v]++; } - - //System.out.println(map); - - 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; + + for (int j = 1; j < n1 + 1; j++) { + if (a[j] == 1) { + pows++; } + a[j] = 0; } - if (x == -1) { - break; - } - - pows = pows(x); - //System.out.println(pows); + + if (pows == 4) { - System.out.println("YES"); - return true; + b = true; } - } - - System.out.println("NO"); - + + System.out.println(b ? "YES" : "NO"); + return true; } + +} - public boolean isPow(int x) { - if (map.get(x).size() == 1) { - return true; - } - 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; - } -} +// public boolean readLine(BufferedReader br) throws IOException { +// String line = br.readLine(); +// if (line == null) { +// return false; +// } +// +// map = new HashMap<Integer, Set<Integer>>(); +// +// String[] sp = line.split(" "); +// int n1 = Integer.parseInt(sp[0]); +// int n2 = Integer.parseInt(sp[1]); +// +// for (int i = 1; i <= n1; i++) { +// map.put(i, new HashSet<Integer>()); +// nav.put(i, Boolean.FALSE); +// } +// +// for (int i = 0; i < n2; i++) { +// String ln = br.readLine(); +// String[] sp2 = ln.split(" "); +// int u = Integer.parseInt(sp2[0]); +// int v = Integer.parseInt(sp2[1]); +// +// 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; +// for (Map.Entry<Integer, Boolean> entry : nav.entrySet()) { +// Integer integer = entry.getKey(); +// Boolean boolean1 = entry.getValue(); +// if (!boolean1) { +// x = integer; +// break; +// } +// } +// if (x == -1) { +// break; +// } +// +// pows = pows(x); +// //System.out.println(pows); +// if (pows == 4) { +// System.out.println("YES"); +// return true; +// } +// } +// +// System.out.println("NO"); +// +// return true; +// } +// +// public boolean isPow(int x) { +// if (map.get(x).size() == 1) { +// return true; +// } +// 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; +// } +//} //