Cod sursa(job #1856539)

Utilizator testepbSorin Popa testepb Data 25 ianuarie 2017 00:27:09
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
struct nod
{
    int k,mu[1000];
};
nod n[100001];
int di[100001],nr,m,S,viz[100001],coada[100001],dist[100001];
void citire()
{   int x,y;
    f>>nr>>m>>S;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y;
        if(x!=y)
        {n[x].k++;
        n[x].mu[n[x].k]=y;}
    }
}
void parcurgere()
{
    int u=1,s=1;
    viz[S]=1;
    coada[u]=S;
    dist[S]=1;
    int d=1,x=0;
    while(u<=s)
    {
        for(int j=1;j<=n[coada[u]].k;j++)
            if(viz[n[coada[u]].mu[j]]==0)
        {
            s++; coada[s]=n[coada[u]].mu[j];dist[n[coada[u]].mu[j]]=dist[coada[u]]+1;
        }
        u++;
    }
    for(int i=1;i<=nr;i++)
        g<<dist[i]-1<<" ";
}
int main()
{
    citire();parcurgere();
    return 0;
}