Cod sursa(job #1445849)

Utilizator ASTELOTudor Enescu ASTELO Data 31 mai 2015 11:10:29
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
int a[1001][1001],i,j,n,m,vc[1001],v[1001],cate=1,nr,b[1001][1001];
void dfs(int nod)
    {
    int co;
    for(co=1;co<=n;co++)
        if(vc[co]==0&&a[nod][co]==1)
            {
            vc[co]=1;
            v[++cate]=co;
            dfs(co);
            }
    }
int main ()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
    {
    int x,y;
    scanf("%d%d",&x,&y);
    a[x][y]=a[y][x]=1;
    }
v[1]=1;
vc[1]=1;
dfs(1);
for(i=2;i<n;i++)
    for(j=i+1;j<=n;j++)
        if(v[i]>v[j])
            a[v[i-1]][v[j]]=a[v[j]][v[i-1]]=1;
for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
        if(a[i][j]==0)
            nr++;
printf("%d",nr);
return 0;
}