Submission #412705

# Submission time Handle Problem Language Result Execution time Memory
412705 2021-05-27T11:19:12 Z LastRonin Beads and wires (APIO14_beads) C++14
0 / 100
1 ms 460 KB
#include <bits/stdc++.h>
#define speed ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define ll long long
#define pb push_back
#define mp make_pair
#define f first
#define s second
#define pill pair<ll, ll>
using namespace std;
const ll N = 1e4 + 10;
const ll big = 1e9;

ll n;
vector<pair<int,int>> g[N];
int dp[N][2];

ll dfs(int v, int p, int z) {	
	dp[v][0] = dp[v][1] = 0;
	int dp2[3] = {0};
	dp2[0] = 0, dp2[1] = -big, dp2[2] = -big;
	for(auto u : g[v]) {
		if(u.f != p)
			dfs(u.f, v, u.s),
			dp2[2] = max(dp2[2] + dp[u.f][1], dp2[1] + dp[u.f][0] + u.s),
			dp2[1] = max(dp2[1] + dp[u.f][1], dp2[0] + dp[u.f][0] + u.s),
			dp2[0] = dp2[0] + dp[u.f][1];			
	}
	dp[v][0] = dp2[0];
	dp[v][1] = max(dp[v][1], dp2[1] + z);
	return dp2[2];
}

int main() {
	speed;
	cin >> n;
	for(int i = 1, a, b, c; i < n; i++)
		cin >> a >> b >> c, g[a].pb(mp(b, c)), g[b].pb(mp(a, c));
	ll ans = 0;
	for(int i = 1; i <= n; i++)
		ans = max(ans, dfs(i, 0, 0));
	cout << ans;
}
/*
10
5 6 9
2 3 5
1 10 8
4 5 9
2 7 8
5 7 10
6 9 4
2 8 9
1 7 5


10
4 10 2
1 2 21
1 3 13
6 7 1
7 9 5
2 4 3
2 5 8
1 6 55
6 8 34

*/
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 460 KB Output is correct
7 Incorrect 1 ms 460 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 460 KB Output is correct
7 Incorrect 1 ms 460 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 460 KB Output is correct
7 Incorrect 1 ms 460 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 460 KB Output is correct
7 Incorrect 1 ms 460 KB Output isn't correct
8 Halted 0 ms 0 KB -