Pagini recente » Cod sursa (job #1388023) | Cod sursa (job #3160375) | Cod sursa (job #3142557) | Cod sursa (job #2678015) | Cod sursa (job #766415)
Cod sursa(job #766415)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
vector<bool> visited;
vector<vector<int> > adj;
int count;
void dfs_visit(int i)
{
visited[i]=true;
for (int j=0;j<adj[i].size();j++)
{
if (!visited[adj[i][j]])
dfs_visit(adj[i][j]);
}
}
void dfs(int n)
{
for (int i=1;i<=n;i++)
{
if (!visited[i])
{
count++;
dfs_visit(i);
}
}
}
int main()
{
FILE *f = fopen("dfs.in","r");
FILE *g = fopen("dfs.out","w+");
int n,m;
fscanf(f,"%d %d",&n,&m);
adj.resize(n+1);
visited.resize(n+1);
for (int i=0;i<=n;i++)
visited[i]= false;
for (int i=0;i<m;i++)
{
int a,b;
fscanf(f,"%d %d", &a,&b);
adj[a].push_back(b);
adj[b].push_back(a);
}
count=0;
dfs(n);
fprintf(g,"%d\n",count);
fclose(f);
fclose(g);
}