# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
954864 | ramalzaher | 사이버랜드 (APIO23_cyberland) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
long long dis[N+4] , vis[N+4] , p[N+4] ;
vector<pair<long long ,long long > > v[N+4] ;
for(long long i = 0; i < M ; i ++ ){
v[x[i]].push_back({y[i] , c[i] }) ;
v[y[i]].push_back({x[i] , c[i] }) ;
}
for(long long i = 0 ; i < N + 2 ; i ++ ) {dis[i] = 1e14 ;p[i] = -1; vis[i] = 0; }
priority_queue<pair<long long ,long long > , vector<pair<long long ,long long > >, greater<pair<long long ,long long > > > q;
q.push({0 ,1 });dis[1] = 0 ;
while(q.size()){
long long top = q.top().second ;
q.pop() ; long long node = top ;
if(vis[node])continue ;vis[node] =1 ;
for(auto it : v[top]){
if(it.second + dis[top] <= dis[it.first]){
p[it.first] = top ;
dis[it.first] = it.second+dis[top] ;
q.push({dis[it.first] , it.first});
}
}
}
long long ans = dis[H] ;
if(ans >= 1e14 ){ans = -1 ;}