Pagini recente » Borderou de evaluare (job #386945) | Cod sursa (job #815334) | Cod sursa (job #1819378) | Borderou de evaluare (job #1189077) | Cod sursa (job #899723)
Cod sursa(job #899723)
#include<fstream>
#include<iostream>
using namespace std;
int n,q[50],viz[50],i,j,t[2][50],v[50],p,m,a[50][50];
void citire(int t[2][50],int v[50],int &n,int &m)
{
int i,j,k=0;
ifstream f("dfs.in");
f>>n>>m;
while(f>>i>>j)
{
k++;
t[0][k]=j;
t[1][k]=v[i];
v[i]=k;
k++;
t[0][k]=i;
t[1][k]=v[j];
v[j]=k;
}
}
void bf(int x)
{int i=1,j=1;
q[i]=x;
viz[x]=1;
while(i<=j)
{p=v[q[i]];
while (p)
{
if(viz[t[0][p]]==0)
{
j++;
q[j]=t[0][p];
viz[t[0][p]]=1;
}
p=t[1][p];
}
i++;
}
}
int main()
{int nr=0;
ofstream g("dfs.out");
citire(t,v,n,m);
for(i=1;i<=n;i++)
if(viz[i]==0) {nr++;
bf(i);
}
g<<nr;}