Cod sursa(job #1314322)

Utilizator sebinsteanuDumitriu Sebastian sebinsteanu Data 11 ianuarie 2015 19:17:00
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;
#define inf INT_MAX;
int n,m,mat[10000][10000],t[10000],viz[10000];
void bfs(int a)
{
    viz[a]=1;
    for(int i=1;i<=n;i++)
        if(mat[a][i]==1&&viz[i]==0)
        {
            t[i]=t[a]+1;
            bfs(i);
        }
        else if(mat[a][i]==0&&viz[i]==0)
            t[i]=-1;
}

int main()
{
    int i,j,x,y,s;
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    in>>n>>m>>s;
    for(i=0;i<m;i++)
    {
        in>>x>>y;
        mat[x][y]=1;
    }
    in.close();
    bfs(s);
    for(i=1;i<=n;i++)
        out<<t[i]<<" ";
    out.close();
    return 0;
}