#include "dreaming.h"
#include <bits/stdc++.h>
#define pb push_back
#define pf push_front
using namespace std;
#define F first
#define S second
typedef long long ll;
#define pii pair <int, int>
#define pll pair <ll, ll>
typedef long double ld;
const ll N = 1e5 + 100, M = 4096 + 10, len = 21, inf = 1e18;
const ll mod = 1e9 + 7;
vector <pii> q[N];
int mx, cur[N], p[N], sz[N], ans;
void dfs(int v, int pred, int sum){
mx = max(mx, sum);
for(auto u : q[v]){
if(u.F == pred) continue;
dfs(u.F, v, sum + u.S);
}
}
int gt(int x){
if(p[x] == x) return x;
return p[x] = gt(p[x]);
}
void addthem(int a, int b){
a = gt(a);
b = gt(b);
if(a != b){
if(sz[b] > sz[a]) swap(a, b);
sz[a] += sz[b];
p[b] = a;
cur[a] = min(cur[a], cur[b]);
}
}
int travelTime(int n, int m, int l, int a[], int b[], int t[]) {
for(int i = 0; i < m; i++){
q[a[i]].pb({b[i], t[i]});
q[b[i]].pb({a[i], t[i]});
}
for(int i = 0; i < n; i++){
mx = 0;
dfs(i, -1, 0);
cur[i] = mx;
sz[i] = 1;
p[i] = i;
ans = max(ans, mx);
}
for(int i = 0; i < n; i++){
for(auto u : q[i]){
addthem(u.F, i);
}
}
vector <int> vec;
for(int i = 0; i < n; i++){
if(p[i] == i){
vec.pb(cur[i]);
//cout << cur[i] << endl;
}
}
sort(vec.begin(), vec.end());
int ss = (int)vec.size();
if((int)vec.size() >= 2) ans = max(ans, vec[ss - 1] + vec[ss - 2] + l);
if((int)vec.size() >= 3) ans = max(ans, vec[ss - 3] + vec[ss - 2] + 2 * l);
return ans;
}
// int main() {
// ios::sync_with_stdio(false);
// cin.tie(NULL);
// int n, m, l;
// cin >> n >> m >> l;
// int a[m], b[m], x[m];
// for(int i = 0; i < m; i++){
// cin >> a[i] >> b[i] >> x[i];
// }
// cout << travelTime(n, m, l, a, b, x);
// return 0;
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |