/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 3ms 2.77 MiB
#2 Accepted 3ms 2.762 MiB
#3 Accepted 3ms 2.77 MiB
#4 Wrong Answer 3ms 2.77 MiB
#5 Accepted 3ms 2.77 MiB
#6 Wrong Answer 4ms 2.77 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define all(v) v.begin(),v.end()
#define endl '\n'
#pragma GCC target("popcnt")
#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__);
template <typename Arg1>void __f (const char* name, Arg1&& arg1) {cout << name << " : " << arg1 << endl;}template <typename Arg1, typename... Args>void __f (const char* names, Arg1&& arg1, Args&&... args){const char* comma = strchr (names + 1, ',');cout.write (names, comma - names) << " : " << arg1 << " | "; __f (comma + 1, args...);}

const ll N = 1e5+1;
const ll M = 31;
vector<ll> g[N];
ll val[N], sum[N], vis[N], ancestor[N][M];
ll n, k, x, y;

void dfs(ll v){
    vis[v] = 1;
    for(auto u:g[v]){
        if(!vis[u]){
            sum[u] += sum[v];
            ancestor[u][0] = v;
            dfs(u);
        }
    }
}

ll kthances(ll u, ll k){
    for(ll i=0; i<M; i++)
        if(k&(1<<i)) u = ancestor[u][i];
    return u;
}

void solve(ll cs) {
    cin >> n >> k;
    for(ll i=1; i<=n; i++) cin >> val[i], sum[i] = val[i];
    for(ll i=0; i<n-1; i++){
        cin >> x >> y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    dfs(1);

    for(ll j=1; j<M; j++)
        for(ll i=1; i<=n; i++)
            ancestor[i][j] = ancestor[ancestor[i][j-1]][j-1];

    ll ans = 0;
    for(ll i=1; i<=n; i++){
        ll kt = kthances(i, k-1);
        if(kt==0) continue;
        else{
            if(kt==1) ans = max(ans, sum[i]);
            else {
                ll kt1 = kthances(kt, 1);
                ans = max(ans, sum[i]-sum[kt1]);
            }
        }
    }

    cout << ans << endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
  
    ll t=1, cs=1;
    //cin>>t;
    while(t--) {
        solve(cs++);
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1160 Max path sum (Easy Version)
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 15:31:46
Judged At
2025-02-17 15:31:46
Judged By
Score
8
Total Time
4ms
Peak Memory
2.77 MiB