Submission #925562

#TimeUsernameProblemLanguageResultExecution timeMemory
925562irmuunCities (BOI16_cities)C++17
14 / 100
345 ms21692 KiB
#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n,k,m;
    cin>>n>>k>>m;
    ll dist[n+5],p[k+5];
    for(ll i=1;i<=k;i++){
        cin>>p[i];
    }
    vector<pair<ll,ll>>adj[n+5];
    for(ll i=1;i<=m;i++){
        ll a,b,c;
        cin>>a>>b>>c;
        adj[a].pb({b,c});
        adj[b].pb({a,c});
    }
    vector<ll>tot(n+5,0);
    for(ll i=1;i<=k;i++){
        vector<ll>dist(n+5,1e18);
        set<pair<ll,ll>>st;
        st.insert({0,p[i]});
        dist[p[i]]=0;
        while(!st.empty()){
            auto [d,j]=*st.begin();
            st.erase(st.begin());
            for(auto [b,c]:adj[j]){
                if(dist[j]+c<dist[b]){
                    if(dist[b]<1e18){
                        st.erase({dist[b],b});
                    }
                    dist[b]=dist[j]+c;
                    st.insert({dist[b],b});
                }
            }
        }
        for(ll j=1;j<=n;j++){
            tot[j]+=dist[j];
        }
    }
    ll ans=1e18;
    for(ll i=1;i<=n;i++){
        ans=min(ans,tot[i]);
    }
    cout<<ans;
}

Compilation message (stderr)

cities.cpp: In function 'int main()':
cities.cpp:16:8: warning: unused variable 'dist' [-Wunused-variable]
   16 |     ll dist[n+5],p[k+5];
      |        ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...