제출 #942059

#제출 시각아이디문제언어결과실행 시간메모리
942059Darren0724Chase (CEOI17_chase)C++17
0 / 100
4014 ms18004 KiB
#include <bits/stdc++.h> using namespace std; #define LCBorz ios_base::sync_with_stdio(false); cin.tie(0); #define int long long #define all(x) x.begin(), x.end() #define endl '\n' const int N=200005; const int INF=1e18; int n,m,ans=0; vector<int> v(N),adj[N],t(N); void dfs(int k,int pa,int deep,int cnt){ cnt+=t[k]; if(deep<m){ ans=max(ans,cnt); } for(int j:adj[k]){ if(j==pa)continue; dfs(j,k,deep+1,cnt-v[j]-v[k]); } } int32_t main() { LCBorz; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>v[i]; t[i]=v[i]; } for(int i=1;i<n;i++){ int a,b;cin>>a>>b; adj[a].push_back(b); adj[b].push_back(a); t[a]+=v[b]; t[b]+=v[a]; } for(int i=1;i<=n;i++){ dfs(i,i,0,-v[i]); } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...