#include <bits/stdc++.h>
using namespace std;
const double INF = 1e18;
double solve(int N, int M, int K, int H,
             vector<int> x, vector<int> y, vector<int> c,
             vector<int> arr) {
    vector<vector<double>> dist(N, vector<double>(K+1, INF));
    using T = pair<double, pair<int,int>>;
    priority_queue<T, vector<T>, greater<T>> pq;
    dist[0][0] = 0;
    pq.push({0.0, {0, 0}});
    while (!pq.empty()) {
        auto [d, uc] = pq.top(); pq.pop();
        int u = uc.first, used = uc.second;
        if (d > dist[u][used]) continue;
        if (u == H) break;
        for (int i = 0; i < M; i++) {
            int v = -1, w = -1;
            if (x[i] == u)      { v = y[i]; w = c[i]; }
            else if (y[i] == u) { v = x[i]; w = c[i]; }
            else continue;
            double nd = d + w;
            int nk = used;
            if (arr[v] == 0) {
                nd = 0;
            }
            else if (arr[v] == 2 && used < K) {
                nd = nd / 2.0;
                nk = used + 1;
            }
            if (nd + 1e-12 < dist[v][nk]) {
                dist[v][nk] = nd;
                pq.push({nd, {v, nk}});
            }
        }
    }
    double ans = INF;
    for (int k = 0; k <= K; k++) {
        ans = min(ans, dist[H][k]);
    }
    if (ans >= INF/2) return -1;
    return 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... |