Pagini recente » Cod sursa (job #572140) | Cod sursa (job #923981) | Cod sursa (job #1514329) | Cod sursa (job #1715128) | Cod sursa (job #3039352)
{\rtf1\ansi\ansicpg1252\cocoartf2639
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
\f0\fs24 \cf0 #include <iostream>\
#include <bits/stdc++.h>\
#include <vector>\
\
using namespace std;\
ifstream fin ("BFS.in");\
ofstream fout ("BFS.out");\
\
int main()\
\{\
int a[101][101];\
int n,m,start;\
fin>>n>>m>>start;\
for(int i=1;i<=m;i++)\{\
int x,y;\
fin>>x>>y;\
a[x][y]=1;\
\}\
\
int distVal=1;\
int distance[101]=\{-1\};\
distance[start]=0;\
int howFar=1;\
\
int st=1,dr=1;\
int vizite[101]=\{0\},orase[101];\
vizite[start]=1;\
orase[dr]=start;\
while(st<=dr)\{\
int city=orase[st];\
for(int i=1;i<=n;i++)\{\
if (vizite[i]==0 && a[city][i]==1)\{\
vizite[i]=1;\
dr++;\
orase[dr]=i;\
\
distance[i]=distVal;\
\}\
\}\
if (howFar==st)\{\
howFar=dr;\
distVal++;\
\}\
st++;\
\}\
\
for (int i=1;i<=n;i++)\{\
if (vizite[i]==0)\{\
fout << "-1 ";\
\}else\{\
fout << distance[i] << " ";\
\}\
\}\
\
return 0;\
\}\
\
\
\
\
\
}