Pagini recente » Cod sursa (job #1211214) | Cod sursa (job #3230731) | Cod sursa (job #284776) | Cod sursa (job #1340894) | Cod sursa (job #1122713)
#include <fstream>
#define NMAX 1001
using namespace std;
int n,a[NMAX][NMAX],k,sol[NMAX],viz[NMAX],cc=0;
ofstream g("dfs.out");
void dfs(int x)
{
sol[1]=x;
viz[x]=1;
int i,j,c;
i=j=1;
do
{
c=1;
while((c<=n)&&(viz[c]||!a[c][sol[i]]))
c++;
if(c<=n)
{
j++;
sol[j]=c;
viz[c]=1;
i=j;
}
else
i--;
}while(i>0);
cc+=j;
}
int main()
{
ifstream f("dfs.in");
ofstream g("dfs.out");
int i,j,m,x,y;
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
int numara=0,kk,nod;
while(cc<n)
{
numara++;
kk=0;
for(int i=1;i<=n&&kk==0;i++)
if(viz[i]==0)
{
nod=i;
kk=1;
}
dfs(nod);
}
g<<numara;
f.close();
g.close();
return 0;
}