結果
| 問題 |
No.977 アリス仕掛けの摩天楼
|
| ユーザー |
hig98ingro
|
| 提出日時 | 2020-01-31 21:38:07 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 980 bytes |
| コンパイル時間 | 1,689 ms |
| コンパイル使用メモリ | 170,500 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-17 07:24:41 |
| 合計ジャッジ時間 | 2,370 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 WA * 2 |
ソースコード
#include<bits/stdc++.h>
#define ll long long
#define fornum(A,B,C) for(A=B;A<C;++A)
#define pii pair<int,int>
#define pll pair<ll,ll>
using namespace std;
/////////////////////////////////////////////////////
ll N;
ll i, j, k,ans;
//Union木
struct UnionFind{
vector<int> nxt;
void init(int x){
nxt.clear();
nxt.resize(x);
for (int i = 0; i < x;i++){
nxt[i] = i;
}
}
int find(int x){
if(nxt[x]==x)
return x;
return nxt[x] =find(nxt[x]);
}
inline void unite(int x,int y){
nxt[find(y)] = find(x);
}
};
int main(){
scanf("%lld", &N);
UnionFind uf;
uf.init(N);
fornum(i,1,N){
ll u, v;
scanf("%lld%lld", &u, &v);
uf.unite(u, v);
}
ans = 0;
fornum(i,0,N){
if(uf.find(i)==i){
++ans;
}
}
if(ans==1){
printf("Bob");
}else{
printf("Alice");
}
return 0;
}
hig98ingro