Pagini recente » Cod sursa (job #1262606) | Cod sursa (job #76608) | Cod sursa (job #2527683) | Clasament Teme ACM Unibuc 2013 | Cod sursa (job #541086)
Cod sursa(job #541086)
#include iostream
#includestdio.h
using namespace std;
const int LUNG = 100005;
int viz[LUNG], cat[LUNG], c[LUNG],
n,m,start;
typedef struct nod
{
int inf;
nod adr;
} TNOD;
TNOD v[LUNG],p;
void add( int a, int b )
{
p= new TNOD;
p-inf=a;
p-adr=v[b];
v[b]=p;
}
void citire()
{
int i,x,y;
cinnmstart;
for( i=1; i=m; i++ )
{
cinxy;
add(y,x);
}
}
void bfs()
{
int li,ls,x,size=0;
li=ls=0;
cat[start] = 0;
c[li++] = start;
viz[start] = 1;
while( ls=li )
{
x=c[ls];
size++;
for ( TNOD p=v[x]; p!=0; p=p-adr )
if( !viz[p-inf] && v[p-inf] )
cat[p-inf] = size,
c[li++] = p-inf,
viz[p-inf] = 1;
ls++;
}
for(int i=1; i=n; i++ )
if(!viz[i]) printf(-1 );
else printf(%d ,cat[i]);
printf(n);
}
int main()
{
freopen(bfs.in,r,stdin);
freopen(bfs.out,w,stdout);
citire();
bfs();
fclose(stdin);
fclose(stdout);
return 0;
}