Pagini recente » Cod sursa (job #1521346) | Cod sursa (job #1625714) | Cod sursa (job #796890) | Cod sursa (job #2650314) | Cod sursa (job #2300918)
#include <fstream>
#define lim 10001
using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int n, m;
int mat[lim][lim];
int coada[lim];
int start;
int p, u;
bool verif[lim];
void read ()
{
f>>n>>m;
for (int i=1;i<=m;++i)
{
pair<int, int>element;
f>>element.first>>element.second;
mat[element.first][element.second] = 1;
mat[element.second][element.first] = 1;
}
f>>start;
}
void init ()
{
coada[1] = start;
verif[start] = true;
p = 1;
u = 1;
}
void bfs ()
{
while (p <= u)
{
int v = coada[p];
++p;
for (int i=1;i<=m;++i)
if (mat[v][i] == 1 && verif[i] == false)
{
++u;
coada[u] = i;
verif[i] = true;
}
}
}
int main()
{
read();
init();
bfs();
g<<start<<'\n';
for (int i=1;i<=n;++i)
g<<coada[i]<<' ';
return 0;
}