Pagini recente » Cod sursa (job #2284278) | Cod sursa (job #1562334) | Cod sursa (job #333429) | Diferente pentru preoni-2007/runda-finala/poze/concurs intre reviziile 4 si 3 | Cod sursa (job #1844895)
#include<fstream>
#include<bitset>
#include<algorithm>
using namespace std;
ifstream f("BFS.in");
ofstream g("BFS.out");
int m,n,i,j,x,t,p;
bitset <100001> a[100001],viz;
struct nod{
short c,d;
}cd[100001];
bool test(nod a, nod b)
{
return a.c<b.c;
}
int main()
{
f>>n>>m>>x;
for(i=1;i<=m;i++){
f>>t>>p;
a[t][p]=1;
}
cd[1].c=x;
p=1;t=1;
viz[x]=1;
while(p<=t)
{
x=cd[p].c;
for(i=1;i<=n;i++)
if(a[x][i] && !viz[i])
{
t++;
cd[t].c=i;
viz[i]=1;
cd[t].d=cd[x].d+1;
}
//g<<d[x]<<' ';
p++;
}
for(i=1;i<=n;i++)
if(!viz[i])
{
t++;
cd[t].c=i;
cd[t].d=-1;
}
sort(cd+1,cd+n+1,test);
for(i=1;i<=n;i++)
g<<cd[i].d<<' ';
//f.close();
//g.close();
return 0;
}