結果
| 問題 |
No.977 アリス仕掛けの摩天楼
|
| ユーザー |
hig98ingro
|
| 提出日時 | 2020-01-31 21:49:30 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,218 bytes |
| コンパイル時間 | 1,638 ms |
| コンパイル使用メモリ | 170,780 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-17 07:50:52 |
| 合計ジャッジ時間 | 2,687 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 WA * 6 |
ソースコード
#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);
}
ll a = 0;
ll b = -1;
fornum(i,0,N){
if(uf.find(i)==i){
a++;
if(a==3)
break;
}else{
if(b==uf.find(i)||b==-1){
b = uf.find(i);
}else{
break;
}
}
}
//printf("%lld %lld %lld\n",a,b, i);
if(i==N){
printf("Bob");
}else{
printf("Alice");
}
return 0;
}
hig98ingro