Pagini recente » Cod sursa (job #2457532) | Cod sursa (job #836028) | Cod sursa (job #2710420) | Cod sursa (job #2578418) | Cod sursa (job #1760139)
#include <cstdio>
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
vector <int>lv[100];
vector <int>::iterator ii;
stack <int>corn;
int n,m;
bool used[100];
int nodnou()
{
for(int i=1;i<=n;i++)
{
if (used[i]==false) return i;
}
return false;
}
int main()
{
FILE *f=fopen("dfs.in","r");
int x,y;
fscanf(f,"%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
lv[x].push_back(y);
lv[y].push_back(x);
}
int ok=0;
while(1)
{
x=nodnou();
if(x==false)break;
while(!corn.empty())
{
corn.pop();
}
ok++;
corn.push(x);
used[x]=true;
while(!corn.empty())
{
x=corn.top();
corn.pop();
for(ii=lv[x].begin();ii<lv[x].end();++ii)
if(used[*ii]==false)
{
used[*ii]=true;
corn.push(*ii);
}
}
}
FILE *g=fopen("dfs.out","w");
fprintf(g,"%d",ok);
return 0;
}