Cod sursa(job #927193)

Utilizator calincojCalin Cojocariu calincoj Data 25 martie 2013 17:32:39
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include<vector>
#include<deque>
using namespace std;
vector<int> v[100010];
deque<int> q;
int n,m,s,x,y,i,d[100010];

int main()
{
   freopen("bfs.in","r",stdin);
   freopen("bfs.out","w",stdout);
   scanf("%d%d%d",&n,&m,&s);
   for(;m;m--)
   {
       scanf("%d%d",&x,&y);
       v[x].push_back(y);
   }
   d[s]=1;
   q.push_back(s);
   while(q.size())
   {
       x=q.front();q.pop_front();
       y=d[x]+1;
       for(vector<int>::iterator it=v[x].begin();it!=v[x].end();it++)
            if(!d[*it])
            {
                d[*it]=y;
                q.push_back(*it);
            }
   }
   for(i=1;i<=n;i++) printf("%d ",d[i]-1);
    return 0;
}