Pagini recente » Betasah | Cod sursa (job #71744) | Cod sursa (job #1524262) | Cod sursa (job #2396887) | Cod sursa (job #298738)
Cod sursa(job #298738)
#include<fstream.h>
ifstream in("bfs.in");
ofstream out("bfs.out");
#define NMAX 1002
int x,y,n,i,m,s;
int dist[NMAX];
int* a[NMAX];
int viz[NMAX],c[NMAX],d[NMAX],p,u;
int main(void)
{
in>>n>>m>>s;
// d=new int[n+1];
for(i=1;i<=n;i++)
d[i]=0;
for(i=1;i<=n;i++)
dist[i]=-1;
for(i=1;i<=m;i++)
{
in>>x>>y;
d[x]++;
}
in.close();
for(i=1;i<=n;i++)
{
dist[i]=-1;
a[i]=new int[d[i]+1];
a[i][0]=d[i];
}
ifstream inn("bfs.in");
inn>>n>>m>>s;
for(i=1;i<=m;i++)
{
inn>>x>>y;
a[x][a[x][0]]=y;
a[x][0]--;
}
inn.close();
p=1;
u=1;
c[1]=s;
dist[c[1]]=0;
viz[c[1]]=1;
while(p<=u)
{
for(i=1;i<=d[c[p]];i++)
if(viz[a[c[p]][i]]==0)
{
u++;
c[u]=a[c[p]][i];
dist[c[u]]=dist[c[p]]+1;
viz[c[u]]=1;
}
p++;
}
for(i=1;i<=n;i++)
out<<dist[i]<<" ";
out<<"\n";
return 0;
}