QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#744478 | #7786. Graft and Transplant | yld# | WA | 1ms | 3808kb | C++20 | 1.0kb | 2024-11-13 22:03:33 | 2024-11-13 22:03:33 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
void solve()
{
int n;
cin>>n;
// if(n==2 || n==3) {cout<<"Bob\n";return;}
vector<int> deg(n+1);
vector<int> e[n+1];
for(int i=1;i<n;i++)
{
int u,v;
cin>>u>>v;
e[u].push_back(v);
e[v].push_back(u);
deg[v]++;
deg[u]++;
}
int flg=0;
for(int i=1;i<=n;i++) if(deg[i]==n-1) flg=1;
if(flg) return cout<<"Bob\n",void();
int num=0;
function<void(int,int)> dfs=[&](int u,int fa)
{
int flag=0;
for(auto v:e[u])
{
if(v==fa) continue;
flag=1;
dfs(v,u);
}
if(flag && u!=1 && fa!=1) num++;
};
for(int i=1;i<=n;i++)
{
num=0;
dfs(i,0);
if(num%2) return cout<<"Alice\n",void();
}
cout<<"Bob\n";
}
signed main()
{
cin.tie(0)->sync_with_stdio(0);
int t=1;
while(t--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3532kb
input:
4 1 2 2 3 3 4
output:
Alice
result:
ok "Alice"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3808kb
input:
4 1 2 1 3 1 4
output:
Bob
result:
ok "Bob"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
2 1 2
output:
Bob
result:
ok "Bob"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3608kb
input:
3 1 2 1 3
output:
Bob
result:
ok "Bob"
Test #5:
score: -100
Wrong Answer
time: 0ms
memory: 3608kb
input:
5 2 1 2 3 3 4 1 5
output:
Alice
result:
wrong answer 1st words differ - expected: 'Bob', found: 'Alice'