結果
問題 |
No.483 マッチ並べ
|
ユーザー |
![]() |
提出日時 | 2017-02-10 23:09:30 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 204 ms / 2,000 ms |
コード長 | 1,582 bytes |
コンパイル時間 | 4,877 ms |
コンパイル使用メモリ | 80,536 KB |
実行使用メモリ | 42,256 KB |
最終ジャッジ日時 | 2024-12-29 11:05:48 |
合計ジャッジ時間 | 15,968 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 53 |
ソースコード
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; import java.util.Map.Entry; public class _483 { public static void main(String[] args) throws IOException { new _483().solve(); } void solve() throws IOException { try (final Scanner in = new Scanner(System.in)) { int n = in.nextInt(); TreeMap<Integer, TreeSet<Integer>> g = new TreeMap<>(); for (int i = 0; i < n; i++) { int x1 = in.nextInt(); int y1 = in.nextInt(); int x2 = in.nextInt(); int y2 = in.nextInt(); int k1 = x1 * 200 + y1; int k2 = x2 * 200 + y2; TreeSet<Integer> es1 = g.getOrDefault(k1, new TreeSet<>()); TreeSet<Integer> es2 = g.getOrDefault(k2, new TreeSet<>()); es1.add(k2); es2.add(k1); g.put(k1, es1); g.put(k2, es2); } TreeMap<Integer, Integer> deg = new TreeMap<>(); for (Entry<Integer, TreeSet<Integer>> e : g.entrySet()) { deg.put(e.getKey(), e.getValue().size()); } while (true) { TreeSet<Integer> ks = new TreeSet<>(g.keySet()); boolean updated = false; boolean all2 = true; for (int k : ks) { all2 &= g.get(k).size() == 2 || g.get(k).size() == 0; if (g.get(k).size() == 1) { g.get(g.get(k).first()).remove(k); g.remove(k); updated = true; } } // dump(all2, updated); if (!updated) { System.out.println(all2 ? "YES" : "NO"); break; } } } } // for debug static void dump(Object... o) { System.err.println(Arrays.deepToString(o)); } }