Submission #128087

#TimeUsernameProblemLanguageResultExecution timeMemory
128087faustaadpChase (CEOI17_chase)C++17
40 / 100
1477 ms17788 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[1010][110]; 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); } } ll depe(ll aa,ll bb,ll cc) { if(d[aa][bb]==-1) { 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++) { memset(d,-1,sizeof(d)); has=max(has,depe(i,k,0)); } cout<<has<<"\n"; }

Compilation message (stderr)

chase.cpp: In function 'void dfs(ll, ll, ll, ll)':
chase.cpp:16:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(ii=0;ii<v[aa].size();ii++)
           ~~^~~~~~~~~~~~~
chase.cpp: In function 'll depe(ll, ll, ll)':
chase.cpp:30: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...