Cod sursa(job #1541990)

Utilizator ASTELOTudor Enescu ASTELO Data 4 decembrie 2015 20:24:58
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
vector<int> v[100001];
int i,j,n,m,k,vc[100001];
queue<int> q;
int main ()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(i=1;i<=m;i++)
    {
    int x,y;
    scanf("%d%d",&x,&y);
    v[x].push_back(y);
    }
for(i=1;i<=n;i++)
    vc[i]=-1;
vc[k]=0;
q.push(k);
while(!q.empty())
    {
    int x=q.front();
    q.pop();
    for(i=0;i<v[x].size();i++)
        if(vc[v[x][i]]==-1)
            {
            vc[v[x][i]]=vc[x]+1;
            q.push(v[x][i]);
            }
    }
for(i=1;i<=n;i++)
    printf("%d ",vc[i]);
return 0;
}