제출 #751286

#제출 시각아이디문제언어결과실행 시간메모리
751286coding_snorlax사이버랜드 (APIO23_cyberland)C++17
15 / 100
37 ms7800 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; G[i].clear(); } 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); } if(dis[H]==100000000000000) return -1; return dis[H]; } /* int main(){ int T; cin>>T; for(int s=0;s<T;s++){ int N,M,K,H; cin>>N>>M>>K>>H; vector<int> x,y,c,arr; for(int i=0;i<N;i++){ int tmp; cin>>tmp; arr.push_back(tmp); } for(int i=0;i<M;i++){ int tmp1,tmp2,tmp3; cin>>tmp1>>tmp2>>tmp3; x.push_back(tmp1); y.push_back(tmp2); c.push_back(tmp3); } cout << solve(N,M,K,H,x,y,c,arr) << "\n"; } }*/
#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...