답안 #976182

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
976182 2024-05-06T09:15:26 Z Amaarsaa 꿈 (IOI13_dreaming) C++14
컴파일 오류
0 ms 0 KB
#include<bits/stdc++.h>

using namespace std;
vector < pair < int , int > > adj[100005];
vector < int > v;
vector < int > q;
int mx, mx_cnt;
int d[100004], used[100004];
void Dia(int node, int parent, int dist) {
	d[node] = dist;
	q.push_back(node);
	if ( d[node] > mx_cnt) {
		mx_cnt = d[node];
		mx = node;
	}
	v.push_back(node);
	used[node] = 1;
	for ( pair < int, int >& A : adj[node]) {
		int child = A.first;
		if ( child == parent) continue;
		Dia(child, node, dist + A.second);
	}
}
int Dfs(int node, int parent, int fn) {
	int baiga = 0;
	if ( node == fn) return 1;
	for ( pair < int, int >& A : adj[node]) {
		int child = A.first;
		if ( child == parent) continue;
		v.push_back(child);
		
		if(Dfs(child, node, fn)) {
			baiga = 1;
		}
		else {
			v.pop_back();
		}
	}
	return baiga;
}
vector < int > Ans;
void Go(int x) {
	int y;
	mx = x;
	mx_cnt = 0;
	Dia(x, x, 0);
	for ( int X : q) d[X] = 0;
	q.clear();
	x = mx;
	mx_cnt = 0;
	Dia(mx, mx, 0);
	y = mx;
	int dist = mx_cnt;
	v.clear();
	v.push_back(x);
	Dfs(x, x, y);
	int s = 1e9;
	for ( int X : v) {
		s = min(s, max(d[X], dist -d[X])); 
	}
	Ans.push_back(s);
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
	for (int i = 0; i < M; i ++) {
		adj[A[i]].push_back({B[i], T[i]});
		adj[B[i]].push_back({A[i], T[i]});
	}
	for (int i = 0; i < N; i ++) {
		if (!used[i]) {
			Go(i);
		}
	}
	sort(Ans.rbegin(), Ans.rend());
	if ( Ans.size() == 2) return Ans[0] + Ans[1] + L;
	return max(Ans[0] + Ans[1] , Ans[1] + Ans[2] + L) + L;
}
/*
int a[100004], b[100004], t[100004];
int n, m, l;
void inp() {
	cin >> n >> m >> l;
	for ( int i = 0; i < m; i ++) cin >> a[i] >> b[i] >> t[i];
}
int main() {
	inp();
	cout << travelTime(n, m, l, a, b, t);
}

Compilation message

dreaming.cpp:77:1: error: unterminated comment
   77 | /*
      | ^