結果
| 問題 |
No.977 アリス仕掛けの摩天楼
|
| ユーザー |
startcpp
|
| 提出日時 | 2020-01-31 21:48:22 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 81 ms / 2,000 ms |
| コード長 | 976 bytes |
| コンパイル時間 | 713 ms |
| コンパイル使用メモリ | 76,464 KB |
| 実行使用メモリ | 9,088 KB |
| 最終ジャッジ日時 | 2024-09-17 07:37:53 |
| 合計ジャッジ時間 | 2,195 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 |
ソースコード
//そうか、そうか、これは、そういう問題だったんだな。
#include <iostream>
#include <vector>
#include <queue>
#define rep(i, n) for(i = 0; i < n; i++)
using namespace std;
int n;
vector<int> et[100000];
int main() {
int i, j;
cin >> n;
rep(i, n - 1) {
int u, v;
cin >> u >> v;
et[u].push_back(v);
et[v].push_back(u);
}
queue<int> que;
static bool used[100000] = {false};
int renketuCnt = 0;
int treeCnt = 0;
rep(i, n) {
if (used[i]) continue;
used[i] = true;
que.push(i);
while (!que.empty()) {
int v = que.front(); que.pop();
rep(j, et[v].size()) {
int nv = et[v][j];
if (!used[nv]) {
used[nv] = true;
que.push(nv);
}
}
}
renketuCnt++;
}
bool leaflag = false;
rep(i, n) if (et[i].size() == 1) leaflag = true;
if (renketuCnt == 1) { cout << "Bob" << endl; }
else if (renketuCnt == 2 && !leaflag) { cout << "Bob" << endl; }
else { cout << "Alice" << endl; }
return 0;
}
startcpp