From e9cc2fba2d80c5615535dd2ff84ae5dee9e6054c Mon Sep 17 00:00:00 2001 From: chayan das <110921638+Chayandas07@users.noreply.github.com> Date: Thu, 20 Mar 2025 22:45:39 +0530 Subject: [PATCH] Create 3108. Minimum Cost Walk in Weighted Graph --- 3108. Minimum Cost Walk in Weighted Graph | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 3108. Minimum Cost Walk in Weighted Graph diff --git a/3108. Minimum Cost Walk in Weighted Graph b/3108. Minimum Cost Walk in Weighted Graph new file mode 100644 index 0000000..e39a4bb --- /dev/null +++ b/3108. Minimum Cost Walk in Weighted Graph @@ -0,0 +1,47 @@ +class Solution { + private: + int getcmpcost(int node, vector>>&adj,vector&vis,vector&cmp,int cid){ + queueq; + int ccost=INT_MAX; + q.push(node); + vis[node]=1; + while(!q.empty()){ + int Node=q.front(); + q.pop(); + cmp[Node]=cid; + for(auto [nbr,w]:adj[Node]){ + ccost&=w; + if(vis[nbr])continue; + vis[nbr]=1; + q.push(nbr); + } + } + return ccost; + } +public: + vector minimumCost(int n, vector>& edges, vector>& query) { + vector>>adj(n); + for(auto ele:edges){ + adj[ele[0]].push_back({ele[1],ele[2]}); + adj[ele[1]].push_back({ele[0],ele[2]}); + } + vectorvis(n,0); + vectorcmp(n); + vectorcmpcost; + int cid=0; + for(int node=0;nodeans; + for(auto q:query){ + int s=q[0]; + int e=q[1]; + if(cmp[s]==cmp[e])ans.push_back(cmpcost[cmp[s]]); + else ans.push_back(-1); + } + return ans; + } +};