結果
| 問題 |
No.977 アリス仕掛けの摩天楼
|
| ユーザー |
CuriousFairy315
|
| 提出日時 | 2020-01-31 22:10:14 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 1,020 ms / 2,000 ms |
| コード長 | 1,440 bytes |
| コンパイル時間 | 2,361 ms |
| コンパイル使用メモリ | 79,532 KB |
| 実行使用メモリ | 83,516 KB |
| 最終ジャッジ日時 | 2024-09-17 08:27:00 |
| 合計ジャッジ時間 | 12,520 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 |
ソースコード
import java.util.Scanner;
import java.util.ArrayList;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
try (Scanner sc = new Scanner(System.in)) {
int N = sc.nextInt();
ArrayList<ArrayList<Integer>> graph = new ArrayList<>();
for (int i = 0;i < N;++ i) graph.add(new ArrayList<>());
int check = 0;
for (int i = 1;i < N;++ i) {
int u = sc.nextInt(), v = sc.nextInt();
check = u;
graph.get(u).add(v);
graph.get(v).add(u);
}
ArrayDeque<Integer> bfs = new ArrayDeque<>();
boolean[] reach = new boolean[N];
bfs.addLast(check);
reach[check] = true;
int count = 1;
while(!bfs.isEmpty()) {
int tmp = bfs.removeFirst();
for (int i : graph.get(tmp)) {
if (!reach[i]) {
reach[i] = true;
bfs.addLast(i);
++ count;
}
}
}
boolean cycleCheck = true;
for (int i = 0;i < N;++ i) cycleCheck &= !reach[i] || graph.get(i).size() == 2;
if (cycleCheck) ++ count;
System.out.println(count < N ? "Alice" : "Bob");
}
}
}
CuriousFairy315