#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll double
#define ff first
#define ss second
const int MX=3e5;
vector< pair<int,ll> >v[MX];
ll dst[MX];
bool vis[MX];
void dfs(int a, int p){
vis[a]=1;
for(auto [b,c] : v[a]){
if(b==p)continue;
dfs(b,a);
}
}
double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) {
for(int i=0;i<N;i++){
dst[i]=2e18;
vis[i]=0;
v[i].clear();
}
for(int i=0;i<M;i++){
v[x[i]].pb({y[i],c[i]});
v[y[i]].pb({x[i],c[i]});
}
priority_queue< pair<int,int>> q;
arr[0]=0;
for(int i=0;i<1;i++){
if(arr[i]==0){
dst[i]=0;
q.push({0,i});
}
}
while(!q.empty()){
int a=q.top().ss;
int w= - q.top().ff;
q.pop();
for(auto [b,c]:v[a]){
if(dst[b]> dst[a]+c){
dst[b]=dst[a]+c;
q.push({-dst[b],b});
}
}
}
if(dst[H]==2e18)dst[H]=-1;
return dst[H];
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |