Pagini recente » Cod sursa (job #589954) | Cod sursa (job #1554358) | Cod sursa (job #2625304) | Cod sursa (job #947917) | Cod sursa (job #1362586)
#include<stdio.h>
#include<list>
int visited[100001];
std::list<int> *l;
void dfs(int pos,int from)
{
visited[pos]=1;
if(from!=-1)
{
l[from].pop_back();
}
while(!l[pos].empty())
{
dfs(l[pos].back(),pos);
}
}
int main()
{
FILE *fin,*fout;
fin=fopen("dfs.in","r");
fout=fopen("dfs.out","w");
int n,m,t1,t2,c=0;
fscanf(fin,"%d %d",&n,&m);
l=new std::list<int>[n+1];
for(int i=1;i<=m;i++)
{
fscanf(fin,"%d %d",&t1,&t2);
l[t1].push_front(t2);
l[t2].push_front(t1);
}
for(int i=1;i<=n;i++)
{
if(visited[i]==0)
{
dfs(i,-1);
c++;
}
}
fprintf(fout,"%d",c);
}