結果
| 問題 | No.408 五輪ピック |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-08-10 02:43:01 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 12 ms / 5,000 ms |
| コード長 | 1,281 bytes |
| 記録 | |
| コンパイル時間 | 13,223 ms |
| コンパイル使用メモリ | 377,324 KB |
| 実行使用メモリ | 5,604 KB |
| 最終ジャッジ日時 | 2024-08-10 02:43:17 |
| 合計ジャッジ時間 | 15,010 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 32 |
ソースコード
fn main() {
proconio::input! {
n: usize,
m: usize,
ab: [(usize, usize); m],
}
let graph = {
let mut g = vec![vec![]; n];
for (a, b) in ab {
g[a - 1].push(b - 1);
g[b - 1].push(a - 1);
}
g
};
if is_possible(&graph) {
println!("YES");
} else {
println!("NO");
}
}
fn is_possible(graph: &Vec<Vec<usize>>) -> bool {
let nodes = {
let mut nodes = vec![vec![]; graph.len()];
for &ni in &graph[0] {
for &nj in &graph[ni] {
if nj != 0 {
nodes[nj].push(ni);
}
}
}
nodes
};
for ni in 0..graph.len() {
for &nj in &graph[ni] {
if nodes[ni].len() == 0 || nodes[nj].len() == 0 {
continue;
}
if nodes[ni].len().min(nodes[nj].len()) >= 3 {
return true;
}
for &nk in &nodes[ni] {
if nk != nj {
for &nl in &nodes[nj] {
if nl != ni && nl != nk {
return true;
}
}
}
}
}
}
false
}