Cod sursa(job #1322647)

Utilizator kira2071Diana C kira2071 Data 20 ianuarie 2015 11:16:51
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;

int v[100001],n,m,nr;

int main()
{int i,x,y,k=0;
ifstream f("dfs.in");
FILE *g;
g=fopen("dfs.out","w");
f>>n>>m;
for(i=1;i<=m; i++)
    {
    f>>x>>y;
    if(v[x]==0 && v[y]==0)
        {v[x]=v[y]=++nr;
        }
    else
        if(v[x]!=0 && v[y]==0)
            v[y]=v[x];
        else
            if(v[y]!=0 && v[x]==0)
                v[x]=v[y];
            else
                {if(v[x]!=v[y])
                    {for(int j=1; j<=n; j++)
                        if(v[x]==v[j])
                            v[j]=v[y];

                    k++;}
                }
    }
for(i=1;i<=n; i++)
    if(v[i]==0)
        {v[i]=++nr;
        }

fprintf(g,"%d",nr-k);
fprintf(g,"\n");
for(i=1;i<=n; i++)
    fprintf(g,"%d ",v[i]);

return 0;
}