Pagini recente » Cod sursa (job #2543694) | Cod sursa (job #2918046) | Cod sursa (job #2733282) | Cod sursa (job #48206) | Cod sursa (job #415608)
Cod sursa(job #415608)
#include<fstream.h>
#include<vector>
using namespace std;
vector < vector <int> > lista;
int sel[100001],n,m,v=0,coada[100000];
void BFS (int a)
{
int k,i;
coada[1]=a;
sel[a] = 1;
k=1;
n=2;
while(k<n)
{
for(i= 0; i < lista[coada[k]].size();i++)
{
if(sel[lista[coada[k]][i]] == 0)
{
coada[ n++ ]=lista[coada[k]][i];
sel[coada[n-1]]=sel[coada[k]]+1;
}
}
k++;
}
}
int main()
{
int i,j,s;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
f>>n>>m>>s;
vector <int > temp;
for( int i = 0; i <= n; ++i)
lista.push_back( temp);
while (f>>i>>j)
{
lista[i].push_back(j);
//lista[j].push_back(i);
}
m=n;
BFS(s);
for(i=1;i<=m;i++)
{
if (i==s)
g<<0<<" ";
else
{
if (sel[i]==0)
g<<-1<<" ";
else
g<<sel[i] - 1<<" ";
}
} f.close();
g.close();
return 0;
}