Submission #511746

# Submission time Handle Problem Language Result Execution time Memory
511746 2022-01-16T04:15:40 Z czhang2718 Power Plant (JOI20_power) C++17
0 / 100
3 ms 5016 KB
#include "bits/stdc++.h"
using namespace std;

const int N=200001;

int n;
vector<int> adj[N];
int dp[N][2];
string s;

void dfs(int x, int par){
  dp[x][1]=(s[x]=='1'?1:-1e9);
  dp[x][0]=(s[x]=='1')*(-1);
  for(int k:adj[x]){
    if(k==par) continue;
    dfs(k, x);
    dp[x][0]+=max({0, dp[k][0], dp[k][1]});
  }
}

int main(){
  cin.tie(0)->sync_with_stdio(0);

  cin >> n;
  for(int i=1; i<n; i++){
    int u, v; cin >> u >> v;
    adj[u].push_back(v);
    adj[v].push_back(u);
  }
  cin >> s;
  s='0'+s;

  dfs(1, 0);
  int ans=dp[1][0];
  for(int k:adj[1]){
    ans=max(ans, dp[1][1]+dp[k][0]);
  }
  cout << ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5016 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5016 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 5016 KB Output isn't correct
2 Halted 0 ms 0 KB -