Submission #19918292
Source Code Expand
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
template<class T> inline bool chmin(T& a, T b){
if (a > b){
a = b;
return true;
}
return false;
}
template<class T> inline bool chmax(T& a, T b){
if (a < b){
a = b;
return true;
}
return false;
}
vector<int> hasStone;
vector<vector<int>> edges;
int dfs(int par, int i){
auto& es = edges[i];
int dist = 0;
int found = false;
for (int j : es){
if (j != par){
int r = dfs(i, j);
if (r >= 0){
found = true;
dist += r + 2;
}
}
}
if (found){
return dist;
} else if (hasStone[i]) {
return 0;
} else {
return -1;
}
}
int main()
{
int n, x;
cin >> n >> x; x--;
hasStone.resize(n);
for (int& b : hasStone) cin >> b;
edges.resize(n);
for (int i = 0; i < n-1; i++){
int a, b;
cin >> a >> b; a--; b--;
edges[a].push_back(b);
edges[b].push_back(a);
}
int ans = dfs(-1, x);
cout << max(0, ans) << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - ツリーグラフ |
| User | unnohideyuki |
| Language | C++ (GCC 9.2.1) |
| Score | 100 |
| Code Size | 1174 Byte |
| Status | AC |
| Exec Time | 8 ms |
| Memory | 3664 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask0_sample_01.txt, subtask0_sample_02.txt |
| All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0_sample_01.txt | AC | 8 ms | 3448 KiB |
| subtask0_sample_02.txt | AC | 2 ms | 3584 KiB |
| subtask1_line01.txt | AC | 2 ms | 3632 KiB |
| subtask1_line02.txt | AC | 2 ms | 3536 KiB |
| subtask1_line03.txt | AC | 3 ms | 3464 KiB |
| subtask1_line04.txt | AC | 3 ms | 3532 KiB |
| subtask1_line05.txt | AC | 2 ms | 3460 KiB |
| subtask1_line06.txt | AC | 2 ms | 3520 KiB |
| subtask1_random01.txt | AC | 3 ms | 3636 KiB |
| subtask1_random02.txt | AC | 2 ms | 3520 KiB |
| subtask1_random03.txt | AC | 2 ms | 3592 KiB |
| subtask1_random04.txt | AC | 3 ms | 3524 KiB |
| subtask1_random05.txt | AC | 2 ms | 3452 KiB |
| subtask1_random06.txt | AC | 3 ms | 3456 KiB |
| subtask1_random07.txt | AC | 2 ms | 3516 KiB |
| subtask1_random08.txt | AC | 2 ms | 3532 KiB |
| subtask1_special01.txt | AC | 2 ms | 3464 KiB |
| subtask1_special02.txt | AC | 3 ms | 3532 KiB |
| subtask1_special03.txt | AC | 3 ms | 3664 KiB |
| subtask1_special04.txt | AC | 2 ms | 3636 KiB |