Submission #758927

#TimeUsernameProblemLanguageResultExecution timeMemory
758927Adrian_SoriagaVoting Cities (NOI22_votingcity)C++14
0 / 100
8 ms724 KiB
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pail;
int dij(vector<pail> adj[] , int start, int target,int nodes){
    int l_max = 1000000000;
    vector<int> done(nodes,0);
    vector<int> dist(nodes,l_max);
    priority_queue<pail, vector<pail> , greater<pail>> pq;
    pq.push({0,start});
    dist[start] = 0;
    while(!pq.empty()){
        int u= pq.top().second;
        pq.pop();
        if (done[u]) continue;
        done[u] =1;
        for (auto x :adj[u]){
            int v= x.first, w= x.second;
            if (dist[v] > dist[u]+w){
                dist[v] = dist[u]+w;
                pq.push({dist[v],v});
            }
        }
    }
    return dist[target];
}
int main(){
    int n,e,k; cin>>n>>e>>k;
    int t; cin>>t;
    vector<pail> adj[n];
    for (int i=0; i<e;i++){
        int a,b,w; cin>>a>>b>>w;
        adj[a].push_back({b,w});
        adj[b].push_back({a,w});
    }
    int q; cin>>q;
    for (int i=0; i<q; i++){
        int s; cin>>s;
        int t_1,t_2,t_3,t_4,t_5; cin>>t_1>>t_2>>t_3>>t_4>>t_5;
        int p = dij(adj,s,t,n);
        if (p ==1000000000 ) cout<<-1<<"\n";
        else cout<<p<<"\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...