Pagini recente » Cod sursa (job #2246687) | Cod sursa (job #3286591) | Cod sursa (job #1517596) | Cod sursa (job #3241344) | Cod sursa (job #305870)
Cod sursa(job #305870)
#include<iostream>
#include<fstream>
#define IMAX 200000
//condition ? value if true : value if false
using namespace std;
ifstream f ("dfs.in");
ofstream o ("dfs.out");
int n,m,i,j, *a[IMAX],culoare[IMAX];
//int drum[IMAX];
void citire()
{
f>>n>>m;
int x,y;
for(i=1;i<=n;i++)
{
a[i]=(int *)realloc(a[i],sizeof(int));
a[i][0]=0;
}
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][0]++;
a[x]=(int *)realloc(a[x],(a[x][0]+1)*sizeof(int));
a[x][a[x][0]]=y;
}
}
int con;
void DFS(int x)
{
//0- alb
//1- negru
culoare[x]=1;
for(j=1;j<=a[x][0];j++)
if(!culoare[a[x][j]])
{con++; DFS(a[x][j]);}
}
int main()
{
citire();
for(i=1;i<=n;i++)
DFS(i);
cout<<con;
return 0;}