Submission #1080464

#TimeUsernameProblemLanguageResultExecution timeMemory
1080464MuhammetCyberland (APIO23_cyberland)C++17
44 / 100
32 ms11092 KiB
#include <bits/stdc++.h> #include "cyberland.h" // #include "stub.cpp" using namespace std; #define ll long long #define ff first #define ss second double solve(int n, int m, int k, int h, vector<int> x, vector<int> y, vector<int> c, vector<int> a) { vector <pair<ll,ll>> v[n+5]; 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]}); } priority_queue <pair<ll,ll>> q; q.push({0,0}); vector <ll> dis(n+1,1e18); dis[0] = 0; while(!q.empty()){ auto [w,x] = q.top(); q.pop(); if(-w != dis[x]) continue; if(x == h) continue; for(auto [to,w1] : v[x]){ if((dis[to] > dis[x] + w1) or (a[to] == 0 and dis[to] != 0)){ dis[to] = dis[x] + w1; if(a[to] == 0) dis[to] = 0; q.push({-dis[to],to}); } } } if(dis[h] == 1e18) return -1; return dis[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...