Submission #636865

#TimeUsernameProblemLanguageResultExecution timeMemory
636865TobFireworks (APIO16_fireworks)C++14
7 / 100
1 ms212 KiB
#include <bits/stdc++.h>

#define ll long long
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)

using namespace std;

ll nxt() {ll num; cin >> num; return num;}

const int N = 307;

int n, m;
vector <pair <ll, ll> > adj[N];
ll dis[N];

void dfs(int x) {
	for (auto it : adj[x]) {
		dis[it.F] = dis[x] + it.S;
	}
}

int main () {
	cin >> n >> m;
	
	for (int i = 2; i <= n+m; i++) {
		ll p, c; cin >> p >> c;
		adj[p].pb({i, c});
	}
	
	dfs(1);
	
	if (n == 1) {
		vector <int> v;
		for (int i = 1; i <= m; i++) {
			v.pb(dis[i+n]);
		}
		sort(all(v));
		ll sr = v[(m-1)/2], cost = 0;
		for (int i = 1; i <= m; i++) {
			cost += abs(dis[i+n] - sr);
		}
		cout << cost;
		return 0;
	}
	

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...