Pagini recente » Cod sursa (job #2425639) | Rating Stoica George (stoicageorge) | Atasamentele paginii Clasament ionutinneaparat | Diferente pentru schimbare-borland/alternativa intre reviziile 6 si 5 | Cod sursa (job #2419435)
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
vector <bool> viz(10005, false);
queue <int> lista[10005];
void DFS(int nod, int N) {
viz[nod] = true;
while (lista[nod].size() >= 1) {
int temp = lista[nod].front();
lista[nod].pop();
if (viz[temp] == false)
DFS(temp, N);
}
}
int main()
{
int N, M;
f >> N >> M;
for (int i = 0; i < M; i++) {
int x, y;
f >> x >> y;
lista[x].push(y);
lista[y].push(x);
}
/*for (int i = 1; i <= N; i++) {
while (lista[i].size() > 0)
cout << lista[i].front() << ' ', lista[i].pop();
cout << endl;
}
*/
int cnt = 0;
for(int i=1;i<=N;i++)
if (viz[i] == false) {
cnt++;
DFS(i, N);
}
g << cnt;
//DFS(1, N);
f.close();
g.close();
return 0;
}