Submission #1326584

#TimeUsernameProblemLanguageResultExecution timeMemory
1326584eri16사이버랜드 (APIO23_cyberland)C++20
0 / 100
3094 ms9396 KiB
#include <bits/stdc++.h> #include "cyberland.h" using namespace std; vector <int> reachable(100005,0); vector<pair<int,double>> adj[100005]; void dfs(int node, int parent){ if (reachable[node]==1){return;} reachable[node]=1; for (auto [child,t] : adj[node]){ if (child!=parent){ dfs(child,node); } } } double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr){ priority_queue< pair<double,int>, vector<pair<double,int>>, greater<pair<double,int>> > pq; pq.push({0,H}); for(int i=0; i<M; i++){ adj[x[i]].push_back({y[i],c[i]}); adj[y[i]].push_back({x[i],c[i]}); } dfs(0,-1); vector<bool> vis(N, false); double mn=INT_MAX; while(!pq.empty()){ auto [d,u]=pq.top(); pq.pop(); vis[u]=true; if(u==0 || (arr[u]==0 && reachable[u]==1)){mn=min(mn,d);} for(auto [v,t] : adj[u]){ if(!vis[v]){ pq.push({d+t,v}); } } } if (mn==INT_MAX){return -1;} return mn; }
#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...