Pagini recente » Cod sursa (job #2490431) | Cod sursa (job #1219075) | Cod sursa (job #453529) | Cod sursa (job #2642504) | Cod sursa (job #882283)
Cod sursa(job #882283)
#include<cstdio>
int viz[1005], a[1005][1005];
int b[1005], n, m, nr;
void citire()
{
int x, y;
freopen("dfs.in","r",stdin);
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
}
void dfs(int k)
{
b[++b[0]]=k;
viz[k]=1;
for(int i=1;i<=n;i++)
if(viz[i]==0 && a[k][i]==1)
dfs(i);
}
void parcurgere()
{
int i, j, k;
for(i=1;i<=n;i++)
viz[i]=0;
for(k=1;k<n;k++)
{
i=b[k];
viz[i]=1;
for(j=b[k+1];j<=n;j++)
{
if(a[i][j]==0 && i!=j && viz[j]==0)
{
a[i][j]=1;
a[j][i]=1;
nr++;
}
}
}
}
void afisare()
{
freopen("dfs.out","w",stdout);
printf("%d",nr);
}
int main()
{
citire();
dfs(1);
parcurgere();
afisare();
}