Cod sursa(job #1496555)

Utilizator eden001Muntean Natan eden001 Data 5 octombrie 2015 10:36:43
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<iostream>
#include<fstream>
using namespace std;
int main(){
    ifstream f("dfs.in");
    int n,x,y,j,u,p,z=0,k=0;
    long m,i;
    int a[1001][1001];
    int l[1001];
    int c[1001];
    f>>n>>m;
    for(i=1;i<=m;i++){//citeste muchiile
        f>>x>>y;
        a[x][y]=1;
        a[y][x]=1;
    }
    i=1;
    while(k==0){
        z++;//creste nr conexe
        l[i]=z;//atribuie nod la conexa
        c[1]=i;//pune nod in coada
        p=1;
        u=1;
        while(p<=u){
            for(j=1;j<=n;j++)//cauta noduri conectate cu c[p]
                if(a[c[p]][j]==1&&l[j]==0){//daca nodul e conectat si nu are alta coectie
                    u++;//urcam in coada
                    c[u]=j;
                    l[j]=z;//conectam nodul
                }
            p++;
        }
        while(l[i]!=0)i++;
        if(i==n+1)k++;
    }
    cout<<z;
}