Pagini recente » Cod sursa (job #1960816) | Cod sursa (job #1504888) | Cod sursa (job #1655377) | Cod sursa (job #2733125) | Cod sursa (job #280550)
Cod sursa(job #280550)
#include<fstream.h>
#define Nmax 100100
ifstream f("date.in");
ofstream g("date.out");
int s,n,m,viz[Nmax];
struct coada
{
int inf;
coada *urm;
}*c;
struct elem
{
int inf,timp,watt;
elem *urm;
}*a[100];
void citire()
{
elem *p;
int x,y,co,w,i;
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
p=new elem;
p->inf=y;
p->urm=a[x];
a[x]=p;
}
}
void program()
{
elem *p;
viz[s]=0;
coada *ultim,*q;
c=new coada;
viz[s]=0;
c->inf=s;
c->urm=NULL;
ultim=c;
while(c!=NULL)
{
p=a[c->inf];
while(p)
{
if(viz[p->inf]==0 && p->inf!=s)
{
viz[p->inf]=viz[c->inf]+1;
q=new coada;
q->inf=p->inf;
q->urm=NULL;
ultim->urm=q;
ultim=q;
}
p=p->urm;
}
c=c->urm;
}
}
void afisare()
{
for(long i=1;i<=n;i++)
{ if(viz[i]!=0 || i==s)
g<<viz[i]<<' ';
else
g<<-1<<' ';
}
g<<'\n';
}
int main()
{
citire();
program();
afisare();
g.close();
return 0;
}