Cod sursa(job #1733029)

Utilizator danutbodbodnariuc danut danutbod Data 23 iulie 2016 15:10:47
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
//
#include <fstream>
#include <bitset>
using namespace std;
ifstream fi("dfs.in");
ofstream fo("dfs.out");
bitset <10000> a[10000];
int n,m,x,y,viz[4000],i;
int DF(int x){
int i;
viz[x]=1;
for(i=1;i<=n;i++)
    if(a[x][i]==1 and viz[i]==0)DF(i);
}
int main()
{
    fi>>n>>m;
    for(i=1;i<=m;i++)
    {
      fi >> x >> y;
      a[x][y]=1; a[y][x]=1;
    }
    int k=0;
    for(i=1;i<=n;i++)
     if(viz[i]==0){
                   DF(i);
                   k++;
     }
    fo<<k<<'\n';
    return 0;
}
////50p cu matrice de adiacenta (prea mica)
//#include <fstream>
//using namespace std;
//ifstream fi("dfs.in");
//ofstream fo("dfs.out");
//bool a[4000][4000];
//int n,m,x,y,viz[4000],i;
//int DF(int x){
//int i;
//viz[x]=1;
//for(i=1;i<=n;i++)
//    if(a[x][i]==1 and viz[i]==0)DF(i);
//}
//int main()
//{
//    fi>>n>>m;
//    for(i=1;i<=m;i++)
//    {
//      fi >> x >> y;
//      a[x][y]=1; a[y][x]=1;
//    }
//    int k=0;
//    for(i=1;i<=n;i++)
//     if(viz[i]==0){
//                   DF(i);
//                   k++;
//     }
//    fo<<k<<'\n';
//    return 0;
//}