-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbfs.cpp
More file actions
31 lines (31 loc) · 727 Bytes
/
bfs.cpp
File metadata and controls
31 lines (31 loc) · 727 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
queue<int> q;
bool visited[N + 1];
void bfs(int x, vector<int> adj[], int c, int p)
{
visited[x] = true;
int distance[c + 1];
memset(distance, -1, sizeof(distance));
distance[x] = 0;
q.push(x);
while (!q.empty())
{
int s = q.front();
q.pop();
// process node s
for (auto u : adj[s])
{
if (visited[u])
continue;
visited[u] = true;
distance[u] = distance[s] + 1;
q.push(u);
}
}
for (int i = 1; i <= c; i++)
{
// cout << i << " " << distance[i] << endl;
if (distance[i] <= p && i != x && distance[i] != -1)
cout << i << " ";
}
cout << endl;
}