Cod sursa(job #2275686)

Utilizator csamoilasamoila ciprian casian csamoila Data 3 noiembrie 2018 13:38:48
Problema Parcurgere DFS - componente conexe Scor 45
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,m;
int a[10001][10001];
int VIZ[10001];
int C[10001];
int cont=0;

int main()
{
    fin >> n >> m;
    for(int i=1;i<=m;i++){
        int x,y;
        fin >> x >> y;
        a[x][y]=1;
        a[y][x]=1;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    int p=1,u=1;
    int x=1;
    int v;
    for(int j=1;j<=n;j++){
        if(VIZ[j]==0){
            p=1;
            u=1;
            cont++;
            x=j;
            VIZ[x]=cont;
            C[1]=x;
            while(p<=u){
                v=C[p++];
                for(int i=1;i<=n;i++){
                    if(a[v][i]==1 && VIZ[i]==0){
                        u++;
                        C[u]=i;
                        VIZ[i]=1;
                    }
                }
            }
        }
    }
    //for(int i=1;i<=n;i++) cout << VIZ[i] << " ";
    fout << cont;
}