Pagini recente » Cod sursa (job #2534052) | Cod sursa (job #1479868) | Cod sursa (job #1591040) | Cod sursa (job #336145) | Cod sursa (job #2103853)
#include <bits/stdc++.h>
using namespace std;
int vertices, edges, u, v, start, cost[100001];
vector<int> adj[100001];
void BFS(int start)
{
queue<int> q;
q.push(start);
cost[start] = 1;
while(!q.empty())
{
int current = q.front(); q.pop();
for(int child : adj[current])
{
if(cost[current] == 0)
{
q.push(child);
cost[child] = cost[current] + 1;
}
}
}
}
int main(){
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d %d %d", &vertices, &edges, &start);
for(int i = 1; i <= edges; i++)
{
scanf("%d %d", &u, &v);
adj[u].push_back(v);
}
BFS(start);
for(int i = 1; i <= vertices; i++)
{
printf("%d ", cost[i] - 1);
}
return 0;
}