Submission #127119

#TimeUsernameProblemLanguageResultExecution timeMemory
127119wilwxkDesignated Cities (JOI19_designated_cities)C++14
7 / 100
423 ms39496 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN=2e5+5; vector<tuple<int, ll, ll> > g[MAXN]; ll dp[MAXN]; ll respf[MAXN], somaf; int n, q; void predfs(int cur, int p) { for(auto aresta : g[cur]) { int viz; ll peso, rpeso; tie(viz, peso, rpeso)=aresta; if(viz==p) continue; predfs(viz, cur); dp[cur]+=dp[viz]+rpeso; } } void dfs(int cur, int p) { respf[1]=max(respf[1], dp[cur]); // printf("dp[%d]= %lld\n", cur, dp[cur]); for(auto aresta : g[cur]) { int viz; ll peso, rpeso; tie(viz, peso, rpeso)=aresta; if(viz==p) continue; ll dpc=dp[cur], dpv=dp[viz]; dp[cur]-=(dp[viz]+rpeso); dp[viz]+=(dp[cur]+peso); dfs(viz, cur); dp[cur]=dpc; dp[viz]=dpv; } } int main() { scanf("%d", &n); for(int i=1; i<n; i++) { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d); g[a].push_back({b, c, d}); g[b].push_back({a, d, c}); somaf+=c; somaf+=d; } predfs(1, 1); dfs(1, 1); scanf("%d", &q); while(q--) { int val; scanf("%d", &val); printf("%lld\n", somaf-respf[val]); } }

Compilation message (stderr)

designated_cities.cpp: In function 'int main()':
designated_cities.cpp:41:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
designated_cities.cpp:43:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d);
                   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
designated_cities.cpp:51:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &q);
  ~~~~~^~~~~~~~~~
designated_cities.cpp:53:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int val; scanf("%d", &val);
            ~~~~~^~~~~~~~~~~~
#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...