Pagini recente » Cod sursa (job #342293) | Cod sursa (job #453768) | Cod sursa (job #2419033) | Cod sursa (job #2074387) | Cod sursa (job #2412070)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n,m, nr_componente_conexe, nr_elemente, comp_max;
bool viz[100003];
vector<int>L[100003];
void Citire()
{
int i, x, y;
ifstream fin("dfs.in");
fin>>n>>m;
for(i=1;i<=m;++i)
{
fin>>x>>y;
L[x].push_back(y);
L[y].push_back(x);
}
fin.close();
}
void DFS(int x)
{
unsigned int ui;
int y;
viz[x] = true;
nr_elemente++;
for(ui=0;ui<L[x].size();++ui)
{
y = L[x][ui];
if(viz[y]==false)
{
DFS(y);
}
}
}
void Afisare()
{
ofstream fout("dfs.out");
/*for(i=1;i<=n;i++)
{
fout<<i<<": ";
for(j=0;j<L[i].size();j++)
fout<< L[i][j]<<" ";
fout<<"\n";
}*/
fout<<nr_componente_conexe<<"\n";
fout<<comp_max<<"\n";
fout.close();
}
int main()
{
int i;
Citire();
for(i=1;i<=n;i++)
if(!viz[i])
{
nr_componente_conexe++;
nr_elemente=0;
DFS(i);
if(nr_elemente > comp_max)
comp_max = nr_elemente;
}
Afisare();
return 0;
}