Submission #1312873

#TimeUsernameProblemLanguageResultExecution timeMemory
1312873arman.khachatryanEvacuation plan (IZhO18_plan)C++20
23 / 100
545 ms18436 KiB
#include <bits/stdc++.h>
using namespace std;
const int INF=1e9+10;
int main() {
    int n, m, s, u, t;
    cin>>n>>m;
    int dist[n+1];
    vector<vector<pair<int, int>>> v(n+1);
    for(int i=0; i<m; i++){
        cin>>s>>u>>t;
        v[u].push_back({s, t});
        v[s].push_back({u, t});
    }
    for(int i=1; i<=n; i++){
        sort(v[i].begin(), v[i].end());
        dist[i]=INF;
    }
    int k, a;
    cin>>k;
    queue<int> q;
    for(int i=0; i<k; i++){
        cin>>a;
        dist[a]=0;
        q.push(a);
        while(!q.empty()){
            int u=q.front();
            for(auto& [s, t] : v[u]){
                if(dist[s]>dist[u]+t){
                    dist[s]=dist[u]+t;
                    q.push(s);
                }
            }
            q.pop();
        }
    }
    int query;
    cin>>query;
    for(int i=0; i<query; i++){
        cin>>u>>s;
        cout<<min(dist[u], dist[s])<<'\n';
    }
}
#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...