Cod sursa(job #3219476)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 31 martie 2024 14:58:45
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream cin("dfs.in");
ofstream cout("dfs.out");

#define MAXN 1000
int mat[MAXN+1][MAXN+1];
int v[MAXN+1];
int n, m;

void dfs(int vf, int nr)
{
    v[vf]=nr;
    int i;
    for(i=1; i<=n; i++)
        if(mat[vf][i]==1 && !v[i])
            dfs(i, nr), v[i]=nr;
}

int main()
{
    cin>>n>>m;
    int i, x, y;
    for(i=0; i<m; i++)
    {
        cin>>x>>y;
        mat[x][y]=1;
        mat[y][x]=1;
    }
    int cnt;
    cnt=0;
    for(i=1; i<=n; i++)
        if(v[i]==0)
        {
            dfs(i, cnt+1);
            cnt++;
        }
    cout<<cnt;
}