Pagini recente » Istoria paginii runda/pascaliada/clasament | Arhiva de probleme | Cod sursa (job #2285232) | Cod sursa (job #3232187) | Cod sursa (job #157419)
Cod sursa(job #157419)
# include <stdio.h>
# include <vector>
using namespace std;
# define input "dfs.in"
# define output "dfs.out"
# define maxN 100001
vector < vector <int> > v;
bool u[maxN];
int i,n,x,y,res,m;
void dfs(int nod)
{
u[nod] = 1;
for(int j = 0;j < v[nod].size();j++)
if(!u[v[nod][j]])
dfs(v[nod][j]);
}
int main()
{
freopen(input, "r", stdin);
freopen(output, "w", stdout);
scanf("%d%d",&n,&m);
v.resize(n+1);
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
for(i=1;i<=n;i++)
if(!u[i])
{
res++;
dfs(i);
}
printf("%d",res);
return 0;
}