Submission #128090

#TimeUsernameProblemLanguageResultExecution timeMemory
128090faustaadpChase (CEOI17_chase)C++17
70 / 100
1561 ms184312 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]; ll d[100010][110]; ll b[100010][110]; ll depe(ll aa,ll bb,ll cc) { if(b[aa][bb]!=i) { b[aa][bb]=i; d[aa][bb]=0; ll ii; for(ii=0;ii<v[aa].size();ii++) { if(v[aa][ii]==cc)continue; d[aa][bb]=max(d[aa][bb],depe(v[aa][ii],bb,aa)); if(bb) d[aa][bb]=max(d[aa][bb],depe(v[aa][ii],bb-1,aa)+x[aa]-a[cc]); } } return d[aa][bb]; } 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++) { has=max(has,depe(i,k,0)); if(n>1000)break; } cout<<has<<"\n"; }

Compilation message (stderr)

chase.cpp: In function 'll depe(ll, ll, ll)':
chase.cpp:19:14: 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...