Submission #763352

#TimeUsernameProblemLanguageResultExecution timeMemory
763352vjudge1Power Plant (JOI20_power)C++17
100 / 100
131 ms27272 KiB
#include<bits/stdc++.h>
using namespace std;

#define taskname "template"
#define ll long long
#define ld double
#define fi first
#define se second
#define vi vector<int>
#define pii pair<int,int> 
#define vii vector<pii>
#define vvi vector<vi>
#define pb push_back
#define eb emplace_back

mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());

const int MN=2e5+5;

int n;
int a,b;
string s;
vi son[MN];
pii dp[MN];
int ans;

void dfs(int u,int par){
    int cnt=0,max1=0;
    for(int v:son[u]){
        if(v==par) continue;
        dfs(v,u);
        dp[u].fi+=dp[v].fi;
        max1=max(max1,dp[v].fi);
    }
    ans=max({ans,max1+(s[u]=='1'),dp[u].fi-(s[u]=='1')});
    dp[u].fi = max(dp[u].fi - (s[u] == '1'), (s[u] - '0'));
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    /*
    freopen(taskname".inp","r",stdin);
    freopen(taskname".out","w",stdout);
    */
    cin>>n;
    for(int i=1;i<n;++i){
        cin>>a>>b;
        son[a].eb(b); son[b].eb(a);
    }
    
    cin>>s;
    s='#'+s;
    dfs(1,0);
    
    // for(int i=1;i<=n;++i){
    //     cout<<"Case "<<i<<": "<<dp[i].fi<<'\n';
    // }
    cout<<ans<<'\n';
}

Compilation message (stderr)

power.cpp: In function 'void dfs(int, int)':
power.cpp:28:9: warning: unused variable 'cnt' [-Wunused-variable]
   28 |     int cnt=0,max1=0;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...