#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
const long double INF = 1e30;
struct State {
    int node;
    int used;
    long double dist;
    bool operator<(const State& other) const {
        return dist > other.dist; // for min-heap
    }
};
double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) {
    vector<vector<pair<int, long double>>> adj(N);
    for (int i = 0; i < M; i++) {
        adj[x[i]].emplace_back(y[i], (long double)c[i]);
        adj[y[i]].emplace_back(x[i], (long double)c[i]);
    }
    vector<vector<long double>> dist(N, vector<long double>(K + 1, INF));
    priority_queue<State> pq;
    for (int start : arr) {
        dist[start][0] = 0.0;
        pq.push({start, 0, 0.0});
    }
    while (!pq.empty()) {
        State cur = pq.top(); pq.pop();
        int u = cur.node, used = cur.used;
        long double d = cur.dist;
        if (d > dist[u][used]) continue;
        for (auto& [v, w] : adj[u]) {
            if (used + 1 <= K && dist[v][used + 1] > d + w) {
                dist[v][used + 1] = d + w;
                pq.push({v, used + 1, dist[v][used + 1]});
            }
        }
    }
    long double ans = INF;
    for (int i = 0; i <= K; i++) {
        ans = min(ans, dist[H][i]);
    }
    return (ans >= INF ? -1.0 : (double)ans);
}
| # | 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... |