Nu aveti permisiuni pentru a descarca fisierul grader_test8.in
Cod sursa(job #1651168)
Utilizator | Data | 12 martie 2016 15:20:06 | |
---|---|---|---|
Problema | Parcurgere DFS - componente conexe | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.97 kb |
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int n,m;
ifstream f("dfs.in");
ofstream g("dfs.out");
vector <vector <int> > graf;
bool visited[100];
void Citire()
{
int x,y;
f>>n>>m;
graf.resize(n);
for (int i=0;i<m;i++)
{
f>>x>>y;
x--;
y--;
graf[x].push_back(y);
graf[y].push_back(x);
}
}
void DFS (int x)
{
if (x>n-1||x<0)
return;
if (visited[x]==false)
visited[x]=true;
for (int i=0;i<graf[x].size();i++)
{
if (visited[graf[x][i]]==false)
DFS(graf[x][i]);
}
}
void CompConexe ()
{
int counter=0;
for (int i=1;i<n;i++)
{
if (visited[i]==false)
{
DFS(i);
counter++;
}
}
cout<<counter<<" componente conexe";
g<<counter;
g.close();
}
int main ()
{
Citire();
CompConexe();
return 0;
}