Submission #128077

#TimeUsernameProblemLanguageResultExecution timeMemory
128077faustaadpChase (CEOI17_chase)C++17
20 / 100
4091 ms14932 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ll n,k,i,a[101010],ta,tb,x[101010],has; vector<ll> v[101010]; void dfs(ll aa,ll bb,ll cc,ll dd) { ll tam=x[aa]-a[bb]; has=max(has,cc); ll ii; for(ii=0;ii<v[aa].size();ii++) { if(v[aa][ii]==bb)continue; if(dd) dfs(v[aa][ii],aa,cc+tam,dd-1); dfs(v[aa][ii],aa,cc,dd); } } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>k; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<n;i++) { cin>>ta>>tb; v[ta].pb(tb); v[tb].pb(ta); x[ta]+=a[tb]; x[tb]+=a[ta]; } for(i=1;i<=n;i++) dfs(i,0,0,k); cout<<has<<"\n"; }

Compilation message (stderr)

chase.cpp: In function 'void dfs(ll, ll, ll, ll)':
chase.cpp:15:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(ii=0;ii<v[aa].size();ii++)
           ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...