Pagini recente » Istoria paginii utilizator/nitudenis | Diferente pentru runda/here_we_go_oni_10 intre reviziile 3 si 4 | Istoria paginii utilizator/oliviaxd | Monitorul de evaluare | Cod sursa (job #1844897)
#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 <1001> a[1001],viz;
struct nod{
short c,d;
}cd[1001];
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;
}
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;
}