Pagini recente » Monitorul de evaluare | template/implica-te/scrie-articole | %round_id% | Cod sursa (job #2127372) | Cod sursa (job #530136)
Cod sursa(job #530136)
#include<iostream.h>
#include<fstream.h>
int a[10000][10000];
int main()
{int n,m,s,x,y,k,j,i;
ifstream f("bfs.in");
ofstream h("bfs.out");
f>>n>>m>>s;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=10000;
for(i=1;i<=m;i++)
{ f>>x>>y;
a[x][y]=1;}
for(k=1;k<=n;k++)
for(j=1;j<=n;j++)
if(a[s][j]>a[s][k]+a[k][j]&&i!=k&&j!=k)
a[s][j]=a[s][k]+a[k][j];
for(j=1;j<=n;j++)
{if(s==j&&a[s][s]==1)
h<<0<<" ";
else
if(a[s][j]==10000)
h<<-1<<" ";
else
h<<a[s][j]<<" ";}
return 0;}