In a social networking site, people are connected with other people. The whole system appears as a giant connected graph. In this question, you are required to answer the total number of people connected at tnodes away from each other (t distance connectivity).
Solution : (Using BFS)
#include<bits/stdc++.h>usingnamespace std;intbfs(int node,vector<int> v[],vector<bool> vs,int dist){int c =0; queue<int> q;q.push(node);vs[node] =1;while (!q.empty()) { c++;int s =q.size();while (s >0) {int x =q.front();vs[x] =1;q.pop();for (auto itr =v[x].begin(); itr !=v[x].end(); itr++) {if (vs[*itr] ==0) {q.push(*itr);vs[*itr] =1; } } s--; }if (c == dist) {break; } }returnq.size();}intmain(){int n, e; cin >> n >> e; vector<int>v[n +1]; vector<bool>vs(n +1);for (int i =1; i <= e; i++) {int a, b; cin >> a >> b;v[a].push_back(b);v[b].push_back(a); }int q; cin >> q;for (int i =1; i <= q; i++) {int node, dist; cin >> node; cin >> dist;int x =bfs(node, v, vs, dist); cout << x <<"\n"; }return0;}