Submission #1276269

#TimeUsernameProblemLanguageResultExecution timeMemory
1276269monaxiaPower Plant (JOI20_power)C++20
100 / 100
146 ms27040 KiB
#include <bits/stdc++.h>
#include <ext/random>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define pb push_back
#define ppb pop_back
#define fr first
#define sc second
#define all(v) v.begin(), v.end()
#define vektor vector

using namespace std;
// using namespace __gnu_pbds; 

using ll = long long;
using ull = unsigned long long;
using ld = long double;

constexpr ull Mod = 1e9 + 7;
constexpr ull Mod2 = 1 + 7 * 17 * (1 << 23);
constexpr ull sqr = 320;
constexpr ld eps = 1e-9;

int n, ans = 0;
vector <int> graph[200005];
int x[200005], dp[200005];

void dfs(int node, int pr, bool b){
    dp[node] = -x[node];

    for(auto& u : graph[node]){
        if(u == pr) continue;
        dfs(u, node, b | x[node]);

        dp[node] += dp[u];
    }

    dp[node] = max(dp[node], x[node]);

    ans = max(ans, dp[node] + b);
}

void solve(){
    cin >> n;


    for(int i = 1; i < n; i ++){
        int u, v;
        cin >> u >> v;

        graph[u].pb(v);
        graph[v].pb(u);
    }

    string ss;
    cin >> ss;

    for(int i = 1; i <= n; i ++) x[i] = ss[i - 1] - '0';

    dfs(1, 0, 0);

    cout << ans;
}

int main(){
    // cout << 1; return 0;
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); 

    if(fopen("TABLE.inp", "r")){
        freopen("TABLE.inp", "r", stdin);
        freopen("TABLE.out", "w", stdout);
    }

    ll t = 1;

    // cin >> t;

    while(t --){
        solve();
        cout << "\n";
    }

    cerr << "Code time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
}



// Whose eyes are those eyes?

Compilation message (stderr)

power.cpp: In function 'int main()':
power.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen("TABLE.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
power.cpp:75:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   75 |         freopen("TABLE.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...