結果

問題 No.408 五輪ピック
コンテスト
ユーザー himueu
提出日時 2026-10-18 21:32:34
言語 C++23(gcc16)
(gcc 16.2.0 + boost 1.92.0 + ACL)
コンパイル:
g++-16 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WJ  
(最新)
AC  
(最初)
実行時間 -
コード長 886 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
最終ジャッジ日時 2026-10-18 21:32:45
ジャッジサーバーID
(参考情報)
judge3_0 / judge5_0
このコードへのチャレンジ
(要ログイン)

ソースコード

diff #
raw source code

#include <iostream>
#include <set>
#include <utility>
#include <vector>

int main() {
    using namespace std;
    int n, m;
    cin >> n >> m;
    vector<pair<int, int>> edges(m);
    vector<set<int>> g(n);
    for (auto &[u, v] : edges) {
        cin >> u >> v;
        u--; v--;
        g[u].insert(v);
        g[v].insert(u);
    }
    vector<set<int>> s(n);
    for (int v = 0; v < n; v++) {
        for (int nv : g[v]) {
            if (g[nv].contains(0)) { s[v].insert(nv); }
        }
    }

    for (auto [u, v] : edges) {
        if (u == 0 || v == 0) { continue; }
        if (s[u].empty() || s[v].empty()) { continue; }
        for (int nu : s[u]) {
            for (int nv : s[v]) {
                if (nu != v && nv != u && nu != nv) {
                    cout << "YES\n";
                    return 0;
                }
            }
        }
    }
    cout << "NO\n";
}
0