Submission #363791

#TimeUsernameProblemLanguageResultExecution timeMemory
363791BartolMBeads and wires (APIO14_beads)C++17
0 / 100
4 ms4972 KiB
#include <bits/stdc++.h> using namespace std; #define X first #define Y second #define mp make_pair #define pb push_back typedef long long ll; typedef pair <int, int> pii; typedef pair <int, pii> pip; typedef pair <pii, int> ppi; typedef pair <ll, ll> pll; const int INF=0x3f3f3f3f; const ll MAX=(ll)INF*INF; const int N=2e5+5; int n; vector <pii> ls[N]; ll dp[N][2]; void rek(int node, int fl, int par) { for (pii sus:ls[node]) { if (sus.X!=par) { rek(sus.X, 0, node); rek(sus.X, 1, node); } } ll maxi[2]={-MAX, -MAX}; ll sum0=0; for (pii sus:ls[node]) { ll x; if (sus.X==par) { if (fl) continue; x=sus.Y; } else { sum0+=dp[sus.X][0]; x=dp[sus.X][1]-dp[sus.X][0]+sus.Y; } for (int i=0; i<2; ++i) if (x>maxi[i]) swap(x, maxi[i]); } dp[node][fl]=max(sum0, sum0+maxi[0]+maxi[1]); } void load() { scanf("%d", &n); for (int i=0; i<n-1; ++i) { int a, b, c; scanf("%d %d %d", &a, &b, &c); ls[a].pb(mp(b, c)); ls[b].pb(mp(a, c)); } } int main() { load(); rek(1, 1, 1); printf("%lld\n", dp[1][1]); return 0; }

Compilation message (stderr)

beads.cpp: In function 'void load()':
beads.cpp:49:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   49 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
beads.cpp:52:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   52 |         scanf("%d %d %d", &a, &b, &c);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...