Submission #345398

# Submission time Handle Problem Language Result Execution time Memory
345398 2021-01-07T09:04:16 Z alireza_kaviani Beads and wires (APIO14_beads) C++17
28 / 100
1000 ms 5612 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>

using namespace std;
using namespace __gnu_pbds;

template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>;

typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;

#define all(x)                      (x).begin(),(x).end()
#define Sort(x)                     sort(all((x)))
#define X                           first
#define Y                           second
#define sep                         ' '
#define endl                        '\n'
#define SZ(x)                       ll(x.size())

ll poww(ll a, ll b, ll md) {
    return (!b ? 1 : (b & 1 ? a * poww(a * a % md, b / 2, md) % md : poww(a * a % md, b / 2, md) % md));
}

const ll MAXN = 2e5 + 10;
const ll LOG = 22;
const ll INF = 8e18;
const ll MOD = 2e9 + 7; // 998244353; // 1e9 + 9;

int n , ans , dpDown[MAXN][2];
vector<pii> adj[MAXN];

void DFS(int v , int p = -1){
	dpDown[v][0] = dpDown[v][1] = 0;
	int mx = -MOD;
	for(pii i : adj[v]){
		int u = i.X , w = i.Y;
		if(u == p)	continue;
		DFS(u , v);
		dpDown[v][0] += max(dpDown[u][0] , dpDown[u][1] + w);
		dpDown[v][1] += max(dpDown[u][0] , dpDown[u][1] + w);
		mx = max(mx , dpDown[u][0] + w - max(dpDown[u][0] , dpDown[u][1] + w));
	}
	dpDown[v][1] += mx;
}

int main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

	cin >> n;
	if(n > 10000)	return 0;
	for(int i = 1 ; i < n ; i++){
		int v , u , w;
		cin >> v >> u >> w;
		adj[v].push_back({u , w});
		adj[u].push_back({v , w});
	}
	for(int i = 1 ; i <= n ; i++){
		DFS(i);
		ans = max(ans , dpDown[i][0]);
	}
	cout << ans << endl;

    return 0;
}
/*

*/
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5100 KB Output is correct
2 Correct 4 ms 5100 KB Output is correct
3 Correct 5 ms 5100 KB Output is correct
4 Correct 5 ms 5100 KB Output is correct
5 Correct 5 ms 5104 KB Output is correct
6 Correct 6 ms 5100 KB Output is correct
7 Correct 4 ms 5100 KB Output is correct
8 Correct 4 ms 5100 KB Output is correct
9 Correct 7 ms 5248 KB Output is correct
10 Correct 4 ms 5100 KB Output is correct
11 Correct 3 ms 5100 KB Output is correct
12 Correct 4 ms 5100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5100 KB Output is correct
2 Correct 4 ms 5100 KB Output is correct
3 Correct 5 ms 5100 KB Output is correct
4 Correct 5 ms 5100 KB Output is correct
5 Correct 5 ms 5104 KB Output is correct
6 Correct 6 ms 5100 KB Output is correct
7 Correct 4 ms 5100 KB Output is correct
8 Correct 4 ms 5100 KB Output is correct
9 Correct 7 ms 5248 KB Output is correct
10 Correct 4 ms 5100 KB Output is correct
11 Correct 3 ms 5100 KB Output is correct
12 Correct 4 ms 5100 KB Output is correct
13 Correct 4 ms 5100 KB Output is correct
14 Correct 4 ms 5100 KB Output is correct
15 Correct 4 ms 5100 KB Output is correct
16 Correct 5 ms 5100 KB Output is correct
17 Correct 5 ms 5100 KB Output is correct
18 Correct 5 ms 5100 KB Output is correct
19 Correct 5 ms 5100 KB Output is correct
20 Correct 5 ms 5104 KB Output is correct
21 Correct 6 ms 5100 KB Output is correct
22 Correct 6 ms 5100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5100 KB Output is correct
2 Correct 4 ms 5100 KB Output is correct
3 Correct 5 ms 5100 KB Output is correct
4 Correct 5 ms 5100 KB Output is correct
5 Correct 5 ms 5104 KB Output is correct
6 Correct 6 ms 5100 KB Output is correct
7 Correct 4 ms 5100 KB Output is correct
8 Correct 4 ms 5100 KB Output is correct
9 Correct 7 ms 5248 KB Output is correct
10 Correct 4 ms 5100 KB Output is correct
11 Correct 3 ms 5100 KB Output is correct
12 Correct 4 ms 5100 KB Output is correct
13 Correct 4 ms 5100 KB Output is correct
14 Correct 4 ms 5100 KB Output is correct
15 Correct 4 ms 5100 KB Output is correct
16 Correct 5 ms 5100 KB Output is correct
17 Correct 5 ms 5100 KB Output is correct
18 Correct 5 ms 5100 KB Output is correct
19 Correct 5 ms 5100 KB Output is correct
20 Correct 5 ms 5104 KB Output is correct
21 Correct 6 ms 5100 KB Output is correct
22 Correct 6 ms 5100 KB Output is correct
23 Correct 685 ms 5484 KB Output is correct
24 Correct 641 ms 5400 KB Output is correct
25 Correct 760 ms 5400 KB Output is correct
26 Execution timed out 1060 ms 5612 KB Time limit exceeded
27 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 5100 KB Output is correct
2 Correct 4 ms 5100 KB Output is correct
3 Correct 5 ms 5100 KB Output is correct
4 Correct 5 ms 5100 KB Output is correct
5 Correct 5 ms 5104 KB Output is correct
6 Correct 6 ms 5100 KB Output is correct
7 Correct 4 ms 5100 KB Output is correct
8 Correct 4 ms 5100 KB Output is correct
9 Correct 7 ms 5248 KB Output is correct
10 Correct 4 ms 5100 KB Output is correct
11 Correct 3 ms 5100 KB Output is correct
12 Correct 4 ms 5100 KB Output is correct
13 Correct 4 ms 5100 KB Output is correct
14 Correct 4 ms 5100 KB Output is correct
15 Correct 4 ms 5100 KB Output is correct
16 Correct 5 ms 5100 KB Output is correct
17 Correct 5 ms 5100 KB Output is correct
18 Correct 5 ms 5100 KB Output is correct
19 Correct 5 ms 5100 KB Output is correct
20 Correct 5 ms 5104 KB Output is correct
21 Correct 6 ms 5100 KB Output is correct
22 Correct 6 ms 5100 KB Output is correct
23 Correct 685 ms 5484 KB Output is correct
24 Correct 641 ms 5400 KB Output is correct
25 Correct 760 ms 5400 KB Output is correct
26 Execution timed out 1060 ms 5612 KB Time limit exceeded
27 Halted 0 ms 0 KB -