제출 #932120

#제출 시각아이디문제언어결과실행 시간메모리
932120Darren0724사이버랜드 (APIO23_cyberland)C++17
0 / 100
3051 ms7632 KiB
#include "cyberland.h" #include <bits/stdc++.h> //#include "stub.cpp" using namespace std; const long long INF=1e15; const double eps=1e-10; double solve(int n, int m, int k, int h, vector<int> x, vector<int> y, vector<int> v, vector<int> c1) { vector<pair<int,double>> adj[n+1]; for(int i=0;i<m;i++){ adj[x[i]].push_back({y[i],v[i]}); } vector dis(n,(long double)INF); vector vis(n,(int)0); priority_queue<pair<double,int>> pq; dis[0]=0; vis[0]=1; for(int i=0;i<=k;i++){ for(int j=0;j<n;j++){ if(vis[j]){ if(c1[j]==0)dis[j]=0; if(c1[j]==2)dis[j]/=2; pq.push({-dis[j],j}); } } while(pq.size()){ auto [a,b]=pq.top(); pq.pop(); a=-a; //if(dis[b]>=a+eps)continue; for(auto [c,d]:adj[b]){ double cost=(c1[c]==0?0:a+d); if(cost<dis[c]){ dis[c]=cost; vis[c]=1; pq.push({-dis[c],c}); } } } } return (vis[h]==0?-1: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...