Submission #1273631

#TimeUsernameProblemLanguageResultExecution timeMemory
1273631vtnooCyberland (APIO23_cyberland)C++20
15 / 100
20 ms6200 KiB
#include "cyberland.h"

#include <bits/stdc++.h>
using namespace std;

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) {
    set<pair<double,int>> q;
    q.insert({0,0});
    vector<vector<pair<int,double>>> adj(N);
    for(int i=0;i<M;i++){
        adj[x[i]].push_back({y[i], c[i]});
        adj[y[i]].push_back({x[i], c[i]});
    }
    vector<bool> vis(N, false);
    while(!q.empty()){
        auto [d,u]=*q.begin();
        q.erase(q.begin());
        vis[u]=true;
        if(u==H){
            return d; 
        }
        for(auto [v,t]:adj[u]){
            if(!vis[v]){
                if(arr[v]==0)q.insert({0,v});
                else q.insert({d+t,v});
            }
        }
    }
    return -1;
}
#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...