Pagini recente » Cod sursa (job #363050) | Cod sursa (job #1004741) | Cod sursa (job #2703516) | Diferente pentru implica-te/arhiva-educationala intre reviziile 88 si 87 | Cod sursa (job #2300916)
#include <fstream>
#define lim 10001
using namespace std;
ifstream f ("date.in");
ofstream g ("date.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;
}