제출 #751205

#제출 시각아이디문제언어결과실행 시간메모리
751205coding_snorlax사이버랜드 (APIO23_cyberland)C++17
0 / 100
3067 ms7884 KiB
#include<bits/stdc++.h>
#include "cyberland.h"
using namespace std;
using ll = long long int;
vector<pair<ll,ll>> G[100002];
set<pair<ll,ll>> now_node;
ll dis[100002];
int vis[100002]={0};
double solve(int N,int M,int K,int H, vector<int> x,vector<int> y,vector<int> c,vector<int> arr){
    int n=N,m=M;
    for(int i=0;i<=n;i++){
        vis[i]=0;
        dis[i]=100000000000000;
    }
    for(int i=0;i<m;i++){
        G[x[i]].push_back(make_pair(c[i],y[i]));
        G[y[i]].push_back(make_pair(c[i],x[i]));
    }
    dis[0]=0;
    vis[0]=1;
    for(auto i:G[0]){
        dis[i.second]=dis[0]+i.first;
        now_node.insert(i);
    }
    dis[0]=0;
    while((int)now_node.size()){
        auto it = *now_node.begin();
        if(!vis[it.second]){
            vis[it.second]=1;
            for(auto now:G[it.second]){
                if(dis[now.second]>dis[it.second]+now.first){
                    dis[now.second]=dis[it.second]+now.first;
                    now_node.insert(make_pair(dis[now.second],now.second));
                }
            }
        }
        now_node.erase(it);
    }
    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...