| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1326582 | eri16 | Cyberland (APIO23_cyberland) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "cyberland.h"
using namespace std;
double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr){
priority_queue<
pair<double,int>,
vector<pair<double,int>>,
greater<pair<double,int>>
> pq;
pq.push({0,0});
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(!pq.empty()){
auto [d,u]=pq.top();
pq.pop();
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 pq.push({d+t,v});
}
}
}
return -1;
}
