Cod sursa(job #1149551)

Utilizator Claudiu95Vartolomei Alexandru Claudiu Claudiu95 Data 21 martie 2014 23:59:13
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream>
#include<vector>
#define maxn 100003
#include<queue>
using namespace std;
ifstream f("bfs.in");
ofstream gg("bfs.out");
int n,m,e1,e2,sur,x;
vector <int> v(maxn),g[maxn],cost(maxn),viz(maxn);
queue <int> Q;
void latime(int sursa){
    for(int i=1;i<=n;++i)
        cost[i]=-1;
       Q.push(sursa);
   cost[sursa]=0;
   viz[sursa]=1;
   while(!Q.empty()){
        x=Q.front();Q.pop();

        while(g[x].size()){
            Q.push(g[x].front());
            if(viz[g[x].front()]==0){
                    viz[g[x].front()]=1;
            cost[g[x].front()]=cost[x]+1;
            }
            g[x].erase(g[x].begin());
            }
   }

}
int main(){
    f>>n>>m>>sur;
    for(int i=1;i<=m;++i){
        f>>e1>>e2;
        g[e1].push_back(e2);
    }
    latime(sur);
    for(int i=1;i<=n;++i)
        gg<<cost[i]<<" ";
    return 0;

}