제출 #1152986

#제출 시각아이디문제언어결과실행 시간메모리
1152986tapilyoca사이버랜드 (APIO23_cyberland)C++20
8 / 100
16 ms6212 KiB
#include "cyberland.h"
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using vll = vector<ll>;
using ld = long double;


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) {
    
    vector<vector<pair<ll,ll>>> adj(N+1);
    for(int i = 0; i < M; i++){
        ll a = x[i];
        ll b = y[i];
        ll w = c[i];
        adj[a].push_back({b,w});
        adj[b].push_back({a,w});
    }


    // 8 points is just straight up bfs 
    
    vector<bool> vis(N+1,0);
    queue<pair<ll,ll>> q;
    q.push({0,0});
    vis[0] = 1;
    while(!q.empty()){
        pair<ll,ll> temp = q.front();
        q.pop();
        ll at = temp.first;
        ll curDist = temp.second;

        for(pair<ll,ll> x : adj[at]){
            if(vis[x.first]) continue;
            vis[x.first] = 1;
            if(x.first == H){
                return curDist + x.second;
            }
            q.push({x.first, x.second + curDist});
        }
    }
    
    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...