Pagini recente » Cod sursa (job #1698698) | Cod sursa (job #2829766) | Cod sursa (job #1871768) | Cod sursa (job #985966) | Cod sursa (job #3263746)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 102
using namespace std;
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
int n, nrc;
vector <int> G[NMAX];
bool viz[NMAX];
void citire();
void dfs(int x);
int main()
{
citire();
for (int i=1; i<=n; i++)
if (!viz[i])
{
nrc++;
dfs(i);
}
fout<<nrc<<'\n';
for (int c=1; c<=nrc; c++)
{
for (int i=1; i<=n; i++)
if (viz[i]==c)
fout<<i<<' ';
fout<<'\n';
}
return 0;
}
void citire()
{
int i, j, m;
fin>>n;
while(fin>>i>>j)
{
G[i].push_back(j);
G[j].push_back(i);
}
/*for (int i=1; i<=n; i++)
{
sort(G[i].begin(), G[i].end());
}*/
}
void dfs(int x)
{
//fout<<x<<' ';
viz[x]=nrc;
for (int i=0; i<G[x].size(); i++)
{
if (!viz[G[x][i]])
dfs(G[x][i]);
}
}