Pagini recente » Cod sursa (job #3039666) | Cod sursa (job #262401) | Cod sursa (job #1046217) | Cod sursa (job #2979899) | Cod sursa (job #1733926)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
unsigned int N, M, S;
unsigned int x, y;
vector <unsigned int> v[100001];
queue <unsigned int> Q;
bool seen[100001];
unsigned int node;
unsigned int i;
int sol[100001];
int main ()
{
ifstream fin ("bfs.in");
fin >> N >> M >> S;
for (i=1; i<=M; i++)
{
fin >> x >> y;
v[x].push_back(y);
}
fin.close();
Q.push(S);
seen[S] = 1;
sol[S] = 1;
while (!Q.empty())
{
node = Q.front();
Q.pop();
for (i=0; i<v[node].size(); i++)
if (seen[v[node][i]] == 0)
{
seen[v[node][i]] = 1;
sol[v[node][i]] = sol[node] + 1;
Q.push(v[node][i]);
}
}
ofstream fout ("bfs.out");
for (i=1; i<=N; i++)
fout << sol[i]-1 << ' ';
fout.close();
return 0;
}