Submission #880331

#TimeUsernameProblemLanguageResultExecution timeMemory
880331MardonbekhazratovCyberland (APIO23_cyberland)C++17
15 / 100
23 ms5728 KiB
#include "cyberland.h"
#include<bits/stdc++.h>
#include <vector>
using namespace std;
#define ll long long
const ll 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<pair<int,int>>>v(N);
    for(int i=0;i<M;i++){
        v[x[i]].push_back({y[i],c[i]});
        v[y[i]].push_back({x[i],c[i]});
    }
    vector<bool>vis(N,0);
    priority_queue<pair<ll,int>>q;
    vector<ll>dp(N,INF);
    dp[0]=0;
    q.push({0,0});
    while(!q.empty()){
        int x=q.top().second;
        q.pop();
        if(vis[x]) continue;
        vis[x]=true;
        for(auto [z,y]:v[x]){
            if(dp[x]+y<dp[z]){
                dp[z]=dp[x]+y;
                q.push({-dp[z],z});
            }
        }
    }
    if(dp[H]==INF) return -1.0;
    return 1.0*dp[H];
}
#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...