Cod sursa(job #1863434)

Utilizator BlueCodeMihalache Catalin Alexandru BlueCode Data 30 ianuarie 2017 21:42:59
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,start,sf;
vector<int>v[100010];
int G[100010],cd[100010];
int cost[100010];
void bfs(int start)
{int i,j;sf=1;
    memset(cost,0,sizeof(cost));
   cost[start]=1;
   cd[sf]=start;
   for(i=1;i<=sf;i++)
    for(j=0;j<G[cd[i]];j++)
    if(cost[v[cd[i]][j]]==0)
    sf++,cd[sf]=v[cd[i]][j],cost[cd[sf]]=cost[cd[i]]+1;

}
int main()
{  f>>n>>m>>start;int i,x,y;
   for(i=1;i<=m;i++)
   {  f>>x>>y;v[x].push_back(y);}
   for(i=1;i<=n;i++)
    G[i]=v[i].size();
   bfs(start);
   for(i=1;i<=n;i++)
    g<<cost[i]-1<<" ";


}