Submission #933502

#TimeUsernameProblemLanguageResultExecution timeMemory
933502JuanchokiRace (IOI11_race)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include <vector>
//#include "race.h"
using namespace std;
int mini = 1e9;
const int maxn = 2e5 + 13;
struct edge
{
	int u, w;
};
vector<edge> adj[maxn];
struct par
{
	int dist, arista;
};
bool operator < (const par &a, const par &b)
{
	return a.dist < b.dist;
}
map<int, int> mp[maxn];
int k;
void dfs(int nodo, int padre)
{
	for (edge e: adj[nodo])
	{
		if (e.u == padre) continue;
		dfs(e.u, nodo);
		if (mp[e.u].size() <= mp[nodo].size())
			swap(mp[e.u], mp[nodo]);
		for (auto it: mp[e.u])
		{
			int yo = it.first;
			if (mp[nodo].count(k-yo))
				mini = min (mini, mp[nodo][k-yo] + it.second);
			int nuevo = it.first + e.w;
			int aristas = it.second+1;
			if (mp[nodo].count(nuevo))
				if (mp[nodo][nuevo] < aristas)
					mp[nodo][nuevo] = aristas;
				else
					{}
			else 
				mp[nodo][nuevo] = aristas;
		}
	}
	if (mp[nodo].count(k)) mini = min (mini, mp[nodo][k]);
}
int best_path(int N, int K, int H[][2], int L[])
{
	k = K;
	for (int i = 0; i < N-1; i++)
	{
		adj[H[i][0]].push_back({H[i][1], L[i]});
		adj[H[i][1]].push_back({H[i][0], L[i]});
	}
	for (int i = 0; i < N; i++)
		mp[i].insert({0, 0});
	dfs(0, -1);
	return mini;
}
int main() 
{
	int n, k; cin >> n >> k;
	int arr[n-1][2], l[n];
	for (int i = 0; i < n-1; i++) cin >> arr[i][0] >> arr[i][1];
	for (int i = 0; i < n; i++) cin >> l[i];
	cout << best_path(n, k, arr, l);
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccnlbDwL.o: in function `main':
race.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccIEvIDK.o:grader.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status