結果

問題 No.408 五輪ピック
ユーザー lam6er
提出日時 2025-04-16 16:39:22
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 1,242 bytes
コンパイル時間 408 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 98,660 KB
最終ジャッジ日時 2025-04-16 16:41:04
合計ジャッジ時間 8,901 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19 MLE * 6 -- * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    import sys
    input = sys.stdin.read().split()
    idx = 0
    N = int(input[idx])
    idx += 1
    M = int(input[idx])
    idx += 1

    adj = [set() for _ in range(N + 1)]  # 1-based

    for _ in range(M):
        a = int(input[idx])
        idx += 1
        b = int(input[idx])
        idx += 1
        adj[a].add(b)
        adj[b].add(a)

    # Collect neighbors of 1
    S = list(adj[1])
    if len(S) < 2:
        print("NO")
        return

    # Check all pairs u, v in S where u < v
    for i in range(len(S)):
        u = S[i]
        for j in range(i + 1, len(S)):
            v = S[j]
            # Check all a in adj[u]
            for a in adj[u]:
                if a == 1 or a == u or a == v:
                    continue
                # Compute common between adj[a] and adj[v]
                common = adj[a] & adj[v]
                if not common:
                    continue
                # Remove 1, u, v, a from common
                common.discard(1)
                common.discard(u)
                common.discard(v)
                common.discard(a)
                if common:
                    print("YES")
                    return

    print("NO")

if __name__ == "__main__":
    main()
0