結果
問題 |
No.408 五輪ピック
|
ユーザー |
![]() |
提出日時 | 2025-04-19 10:44:51 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 58 ms / 5,000 ms |
コード長 | 1,060 bytes |
コンパイル時間 | 2,151 ms |
コンパイル使用メモリ | 200,740 KB |
実行使用メモリ | 24,012 KB |
最終ジャッジ日時 | 2025-04-19 10:44:56 |
合計ジャッジ時間 | 5,028 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 32 |
コンパイルメッセージ
main.cpp: In function ‘bool solve()’: main.cpp:41:33: warning: ‘a’ may be used uninitialized [-Wmaybe-uninitialized] 41 | if (a != b) | ^~ main.cpp:33:37: note: ‘a’ was declared here 33 | int a; | ^ main.cpp:41:33: warning: ‘b’ may be used uninitialized [-Wmaybe-uninitialized] 41 | if (a != b) | ^~ main.cpp:37:37: note: ‘b’ was declared here 37 | int b; | ^
ソースコード
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 5; int n, m; vector<int> e[N]; unordered_set<int> C[N]; bool solve() { for (int i: e[1]) for (int j: e[i]) { if (j == 1) continue; C[j].insert(i); } for (int i = 1; i <= n; i++) for (int j: e[i]) { if (j < i) continue; if (i == 1 || j == 1) continue; int num_i = C[i].size(); if (C[i].count(j)) num_i--; int num_j = C[j].size(); if (C[j].count(i)) num_j--; if (num_i == 1 && num_j == 1) { int a; for (int k : C[i]) if (k != i && k != j) a = k; int b; for (int k : C[j]) if (k != i && k != j) b = k; if (a != b) return true; } if (1 <= num_i && 1 <= num_j) { int m = max(num_i, num_j); if (2 <= m) return true; } } return false; } int main() { // freopen("1.in", "r", stdin); cin >> n >> m; for (int i = 1, u, v; i <= m; i++) { cin >> u >> v; e[u].push_back(v); e[v].push_back(u); } if (solve()) puts("YES"); else puts("NO"); return 0; }