Cod sursa(job #2259285)

Utilizator PaduraruCristianPaduraru Cristian Daniel PaduraruCristian Data 13 octombrie 2018 11:18:54
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;


ifstream f("dfs.in");
ofstream g("dfs.out");
int a[102][102];
int n,k=0;
int v[102];
deque <int> q;
void solve(int x)
{
    k++;
    q.push_back(x);
    int i,x1;
    while(!q.empty())
    {
        x1=q.front();
        q.pop_front();
        v[x1]=k;
        for(i=1;i<=n;i++)
        {
            if(a[x1][i]&&v[i]==0)
                q.push_back(i);
        }

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

}

int main()
{
    f>>n;
    int i,j;
    while(f>>i>>j)
        a[i][j]=a[j][i]=1;
    solve(1);
    g<<k;
    return 0;
}