Submission #208375

#TimeUsernameProblemLanguageResultExecution timeMemory
208375achibasadzishviliDesignated Cities (JOI19_designated_cities)C++17
16 / 100
403 ms53328 KiB
#include<bits/stdc++.h> #define ll long long #define f first #define s second #define pb push_back #define N 200005 #define mp make_pair using namespace std; ll n,ch[N],ans[N],al,mx[N],ze[N],q; vector<pair<ll,pair<ll,ll> > >g[N]; vector<pair<pair<ll,ll> , pair<ll,ll> > > ed; void calc1(ll x,ll par){ for(int i=0; i<g[x].size(); i++) if(g[x][i].f != par){ calc1(g[x][i].f , x); ch[x] += g[x][i].s.s + ch[g[x][i].f]; } } void solve1(ll x,ll par,ll zed){ ans[1] = max(ans[1] , zed + ch[x]); ze[x] = zed; for(int i=0; i<g[x].size(); i++) if(g[x][i].f != par) solve1(g[x][i].f , x , zed + ch[x] - ch[g[x][i].f] - g[x][i].s.s + g[x][i].s.f); } void solve2(ll x,ll par,ll dis){ ll mx1 = 0, mx2 = 0; for(int i=0; i<g[x].size(); i++) if(g[x][i].f != par){ solve2(g[x][i].f , x , dis + g[x][i].s.f); if(mx[g[x][i].f] > mx1)mx2 = mx1 , mx1 = mx[g[x][i].f]; else if(mx[g[x][i].f] > mx2)mx2 = mx[g[x][i].f]; } ans[2] = max(ans[2] , ze[x] + mx1 + mx2 - 2 * dis + ch[x]); mx[x] = max(mx1 , dis); } int main(){ ios::sync_with_stdio(false); cin >> n; for(int i=1; i<n; i++){ ll a,b,c,d; cin >> a >> b >> c >> d; al += c + d; g[a].pb(mp(b , mp(c , d))); g[b].pb(mp(a , mp(d , c))); ed.pb(mp(mp(a , b) , mp(c , d))); } calc1(1 , 0); solve1(1 , 0 , 0); solve2(1 , 0 , 0); cin >> q; while(q--){ ll x; cin >> x; cout << al - ans[x] << '\n'; } return 0; }

Compilation message (stderr)

designated_cities.cpp: In function 'void calc1(long long int, long long int)':
designated_cities.cpp:13:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<g[x].size(); i++)
               ~^~~~~~~~~~~~
designated_cities.cpp: In function 'void solve1(long long int, long long int, long long int)':
designated_cities.cpp:22:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<g[x].size(); i++)
               ~^~~~~~~~~~~~
designated_cities.cpp: In function 'void solve2(long long int, long long int, long long int)':
designated_cities.cpp:28:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<g[x].size(); i++)
               ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...