제출 #1130162

#제출 시각아이디문제언어결과실행 시간메모리
1130162ttamxCheap flights (LMIO18_pigus_skrydziai)C++20
53 / 100
211 ms50760 KiB
#include<bits/stdc++.h>

using namespace std;

using ll = long long;

int main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    int n,m;
    cin >> n >> m;
    vector<vector<pair<int,int>>> adj(n);
    vector<ll> a(n);
    for(int i=0;i<m;i++){
        int u,v,w;
        cin >> u >> v >> w;
        u--,v--;
        a[u]+=w,a[v]+=w;
        adj[u].emplace_back(v,w);
        adj[v].emplace_back(u,w);
    }
    ll ans=*max_element(a.begin(),a.end());
    vector<int> dep(n);
    vector<ll> dist(n);
    function<void(int,int)> dfs=[&](int u,int p){
        for(auto [v,w]:adj[u]){
            if(!dep[v]){
                dep[v]=dep[u]+1;
                dist[v]=dist[u]+w;
                dfs(v,u);
            }else if(dep[u]-dep[v]==2){
                ans=max(ans,dist[u]-dist[v]+w);
            }
        }
    };
    for(int i=0;i<n;i++){
        if(!dep[i]){
            dep[i]=1;
            dfs(i,-1);
        }
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...