Cod sursa(job #854073)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 12 ianuarie 2013 19:18:32
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<vector>
#include <stdio.h>
 
using namespace std;

FILE *f=fopen("bfs.in","r"), *g=fopen("bfs.out","w");

int v[100001];
vector <int> lv[100005];
 
int n,m,s;
int q[100005];
 
int main()
{
    int i;
     
    fscanf(f,"%d%d%d", &n, &m, &s);
     
    for( i = 1; i <= m; i++)
    {   
        int x,y;
        fscanf(f,"%d%d", &x, &y);
        lv[x].push_back(y);
    }
 
    int u,p;
    u=1;
    q[u]=s;
    v[s]=1;
    p=0;
    while(p<u)
    {   p++;
        for( i = 0; i < lv[q[p]].size(); i++ )
            if( !v[lv[q[p]][i]] )
			{
				v[lv[q[p]][i]]=v[q[p]]+1;
				q[++u]=lv[q[p]][i];
			}
    }
     
    for( i = 1; i <= n; i++ )
		fprintf(g, "%d ", v[i]-1);
}