Submission #1179493

#TimeUsernameProblemLanguageResultExecution timeMemory
1179493azhiraya꿈 (IOI13_dreaming)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
//#define endl "\n"
#define fer(i, a, b) for(int i = (a); i <= (b); i ++)
#define LL long long
const int Maxn = 1e5 + 10;
int n, m, k; 
struct edge {
	int x, v; 
};
vector <edge> lbj[Maxn]; 
int f[Maxn]; 
int fa[Maxn]; 
int idx; LL mxd; 
LL d[Maxn]; 
LL ans; 
void dfs(int opt, int x) {
	f[x] = opt; 
	if(d[x] >= mxd) {
		mxd = d[x]; 
		idx = x; 
	}
	for(auto const &[to, v] : lbj[x]) {
		if(f[to] >= opt) continue; 
		fa[to] = x; 
		d[to] = d[x] + v; 
		dfs(opt, to); 
	}
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
	ios::sync_with_stdio(false);
	cin.tie(nullptr); cout.tie(nullptr); 
	n = N; m = M; k = L; 
	int x, y, v; 
	fer(i, 1, m) {
		x = A[i - 1]; y = B[i - 1]; v = T[i - 1]; 
		x ++; y ++; 
		lbj[x].push_back({y, v}); 
		lbj[y].push_back({x, v}); 
	}
	vector <LL> g; 
	fer(i, 1, n) {
		if(f[i] == 2) continue; 
		fa[i] = 0; d[i] = 0; mxd = 0; dfs(1, i); 
		x = idx; 
		fa[x] = 0; d[x] = 0; mxd = 0; dfs(2, x); 
		y = idx; 
		ans = max(ans, mxd); 
		LL mn = LONG_LONG_MAX; 
		for(; y; y = fa[y]) {
			mn = min(mn, max(d[y], mxd - d[y])); 
		}
		g.push_back(mn); 
	}
	sort(g.begin(), g.end(), greater <LL>()); 
	if(g.size() >= 3) return max(ans, max(g[0] + g[1] + k, g[1] + g[2] + k + k)); 
	else if(g.size() >= 2) return max(ans, g[0] + g[1] + k); 
	else if(g.size() >= 1) return max(ans, g[0]); 
	return 0; 
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccFMaLOn.o: in function `main':
grader.c:(.text.startup+0xc4): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status