Cod sursa(job #1774101)

Utilizator Grama911Grama Andrei Grama911 Data 8 octombrie 2016 16:07:17
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <cstring>
#include<vector>
#include<queue>
using namespace std;

int n, m, s;
vector <int>lv[100];
vector <int>::iterator ii;
queue <int>q;
bool used[100000];

int main()
{
	FILE *f = fopen("bfs.in", "r");
	FILE *g = fopen("bfs.out", "w");
	int x, y;
	fscanf(f, "%d%d%d", &n, &m, &s);
	memset(used, 0, sizeof(used));
	for (int i = 1; i <= m; i++)
	{
		fscanf(f, "%d%d", &x, &y);
		lv[x].push_back(y);
		lv[y].push_back(x);
	}
	
	q.push(1);
	used[1] = 1;
	while (!q.empty())
	{
		cout << (x = q.front()) << " ";
		q.pop();
		
		
		for (ii = lv[x].begin(); ii != lv[x].end(); ++ii)
			if (!used[*ii])
			{
				used[*ii] = 1;
				q.push(*ii);
			}
	}
	cout << "\nUrmatoarele noduri formeaza o componenta conexa:\n";
	for (int i = 1; i <= n; i++)
		if (used[i])cout << i << " ";
	return 0;
}