Cod sursa(job #2174325)

Utilizator unknownpersonBidasca Carina Georgiana unknownperson Data 16 martie 2018 11:37:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m;
const int N=100005;
vector<int >muchii[N];
int dist[N];
queue<int>Q;
void citire();
void bfs()
{
  int nod,vecin;
  while(!Q.empty())
  {
      nod=Q.front();
      Q.pop();
      for(unsigned int i=0;i<muchii[nod].size();i++)
      {
          vecin=muchii[nod][i];
          if(dist[vecin]==-1)
          {
              Q.push(vecin);
              dist[vecin]=dist[nod]+1;
          }
      }
  }
}

void citire()
{ int start;
    f>>n>>m>>start;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        f>>x>>y;
        muchii[x].push_back(y);
    }
    for(int i=1;i<=n;i++)
           dist[i]=-1;
    dist[start]=0;
           Q.push(start);
           bfs();
       for(int i=1;i<=n;i++)
        g<<dist[i]<<" ";
}

int main()
{
    citire();
    return 0;
}