Submission #206071

#TimeUsernameProblemLanguageResultExecution timeMemory
206071PeppaPigDesignated Cities (JOI19_designated_cities)C++14
7 / 100
531 ms48776 KiB
#include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<LL, int> pii; int N, Q; vector<pii> G[202020], RG[202020]; int deg[202020]; bool chk[202020]; LL ans[202020], sum; priority_queue<pii> PQ; LL d(int u, int p){ LL ret = 0; for (pii v : RG[u]) if (v.second != p) ret += d(v.second, u) + v.first; return ret; } void f(int u, int p){ ans[1] = min(ans[1], sum); for (int i=0; i<(int)G[u].size(); i++){ if (G[u][i].second == p) continue; sum -= RG[u][i].first; sum += G[u][i].first; f(G[u][i].second, u); sum += RG[u][i].first; sum -= G[u][i].first; } } int main(){ int u, v; LL x, y; scanf("%d", &N); for (int i=1; i<N; i++){ scanf("%d %d %lld %lld", &u, &v, &x, &y); G[u].push_back(pii(y, v)); G[v].push_back(pii(x, u)); RG[v].push_back(pii(y, u)); RG[u].push_back(pii(x, v)); deg[u]++, deg[v]++; } for (int i=1; i<=N; i++) if (deg[i] == 1) PQ.push(pii(-G[i][0].first, i)); ans[1] = 1234567890123456ll; sum = d(1, 0); f(1, 0); scanf("%d", &Q); while (Q--){ scanf("%d", &u); printf("%lld\n", ans[u]); } return 0; }

Compilation message (stderr)

designated_cities.cpp: In function 'int main()':
designated_cities.cpp:35:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &N);
     ~~~~~^~~~~~~~~~
designated_cities.cpp:37:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d %lld %lld", &u, &v, &x, &y);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
designated_cities.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &Q);
     ~~~~~^~~~~~~~~~
designated_cities.cpp:50:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &u);
         ~~~~~^~~~~~~~~~
#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...