結果
| 問題 |
No.408 五輪ピック
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 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;
}
vjudge1