Submission #1179293

#TimeUsernameProblemLanguageResultExecution timeMemory
1179293hoang1707Race (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
int res=INT_MAX;
int n,k;
void dfs(vector<vector<pair<int,int>>>&g,int u,int p,int d,int deep,map<int,int> memo[]){
	memo[u][deep]=d;
//	cout<<"deep="<<deep<<",d="<<d<<",u="<<u<<endl;
	for(auto &co:g[u]) {
		int v=co.first,w=co.second;
		if (v==p) continue;
		dfs(g,v,u,d+1,deep+w,memo);
		if (memo[u].size()<memo[v].size()) swap(memo[u],memo[v]);
		for (auto &p:memo[v]) {
			int w=p.second;
			int val=deep+k-w;
			if (memo[u].find(val)!=memo[u].end()) res=min(res,memo[u][val]-d+1);
		}
		for(auto &p:memo[v]) {
			int fi=p.first,se=p.second;
			if (memo[u].find(fi)==memo[u].end()) memo[u][fi]=se;
			else memo[u][fi]=min(memo[u][fi],se);
//			cout<<"v="<<v<<",w="<<w<<",val="<<val<<endl;
		}
	}
	
}
signed main() {
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;
	vector<vector<pair<int,int>>> g(n);
	vector<pair<int,int>> edges;
	for (int i=1;i<n;i++) {
		int u,v;cin>>u>>v;
		edges.emplace_back(u,v);
	}
	int len[n-1];
	for (int i=0;i<n-1;i++) cin>>len[i];
	for (int i=0;i<n-1;i++) {
		int u=edges[i].first,v=edges[i].second;
		g[u].push_back({v,len[i]});
		g[v].push_back({u,len[i]});
	}
	map<int,int> memo[n];
	int root=-1;
	for (int i=0;i<n;i++) if (g[i].size()<=1) {
		root=i;
		break;
	}
	dfs(g,root,root,0,0,memo);
	if (res==INT_MAX) cout<<-1<<endl; else cout<<res<<endl;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccgdadDz.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc7OIWR7.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccgdadDz.o: in function `main':
grader.cpp:(.text.startup+0x28): undefined reference to `best_path(int, int, int (*) [2], int*)'
collect2: error: ld returned 1 exit status