This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define rep(i,s,e) for (int i = s; i <= e; ++i)
#define pb push_back
typedef vector<int> vi;
const int mx=2e5;
vi adj[mx+1];
int ans = 0;
string s;
int dfs (int u, int p) {
int x = 0, c = 0, ma = 0;
for (int v : adj[u]) {
if (v==p) continue;
int res = dfs (v, u);
if (res) {
c++;
x += res;
ma = max(ma, res);
}
}
if (s[u-1]=='1') {
ans = max(ans, ma+1);
if (c<2) ans = max(ans, x+1);
x = max(x-1, 1);
}
ans = max(ans, x);
return x;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;cin>>n;
rep(i,1,n-1){
int u,v; cin>>u>>v;
adj[u].pb(v);
adj[v].pb(u);
}
cin >> s;
dfs (1,0);
cout << ans << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |