Cod sursa(job #2329854)

Utilizator RaresANDCRares Andrei Codreanu RaresANDC Data 27 ianuarie 2019 16:09:01
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
#define NMAX 100


using namespace std;

ifstream fin ("dfs.in");
ofstream fout ("dfs.out");

queue < int > Coada;

int n,m,nc,maxi=INT_MIN;
int adi[NMAX+5][NMAX+5],viz[NMAX+5];

void dfs(int i)
{
    nc=1;
    Coada.push(i);
    viz[i]=nc;
    while(!Coada.empty())
    {
        int nodcurent=Coada.front();
        Coada.pop();
        for(int j=1;j<=n;j++)
            if(adi[nodcurent][j] && !viz[j])
            {
                Coada.push(j);
                nc++;
                viz[j]=nc;
            }
    }

}

int main()
{
    fin >> n >> m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        fin >> x >> y;
        adi[x][y]=1;
        adi[y][x]=1;
    }


    for(int i=1;i<=n;i++)
    {
        if(!viz[i])
        {
            dfs(i);
        }
    }
    for(int i=1;i<=n;i++)
        if(maxi<viz[i])maxi=viz[i];
    fout << maxi;
    return 0;
}