結果
問題 | 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 debugstatic void dump(Object... o) {System.err.println(Arrays.deepToString(o));}}