Submission #1160475

#TimeUsernameProblemLanguageResultExecution timeMemory
1160475LolkasMeep사이버랜드 (APIO23_cyberland)C++20
0 / 100
24 ms15684 KiB
#include "bits/stdc++.h" using namespace std; typedef long long int ll; double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr){ vector<unordered_map<int, double>> adjList(N); for(int i = 0; i < M; i++){ adjList[x[i]][y[i]] = c[i]; adjList[y[i]][x[i]] = c[i]; } vector<bool> connected(N); deque<int> dq; dq.push_back(0); connected[0] = true; while(!dq.empty()){ int node = dq.front(); dq.pop_front(); for(const pair<int, double> &nxtPr : adjList[node]){ int nxtNode = nxtPr.first; if(connected[nxtNode]) continue; if(nxtNode == H) continue; connected[nxtNode] = true; dq.push_back(nxtNode); } } priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; vector<double> dist(N, DBL_MAX); pq.push(make_pair(H, 0)); dist[H] = 0; while(!pq.empty()){ pair<int, int> pr = pq.top(); pq.pop(); // cout << pr.first << ' ' << pr.second << '\n'; if((arr[pr.first] == 0 && connected[pr.first]) || pr.first == 0) return pr.second; for(const pair<int, double> &nxtPr : adjList[pr.first]){ int nxtNode = nxtPr.first; double newDist = nxtPr.second; // cout << nxtPr.first << ' ' << dist[nxtNode] << ' ' << connected[nxtNode] << '\n'; if(newDist >= dist[nxtNode]) continue; if(!connected[nxtNode]) continue; dist[nxtNode] = newDist; pq.push(make_pair(nxtNode, newDist)); } } return -1; } // int main(){ // cout << solve(4, 4, 30, 3, {0, 0, 1, 2}, {1, 2, 3, 3}, {5, 4, 2, 4}, {1, 0, 2, 1}); // return 0; // }
#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...