Pagini recente » Cod sursa (job #2393663) | Cod sursa (job #539514) | Cod sursa (job #1758183) | Cod sursa (job #2092068) | Cod sursa (job #1496427)
#include<iostream>
#include<vector>
#include<map>
#include<stack>
#include<fstream>
#include<algorithm>
using namespace std;
std::map<int,vector<int> > nods;
int n,m;
ifstream f("dfs.in");
ofstream g("dfs.out");
void read_nod(){
int y,x;
f>>n>>m;
//cout<<n<<m;
for(int i=0;i<m;i++)
{
f>>x>>y;
nods[x].push_back(y);
}
}
void out_date(int n){
for(int i =1;i<=n;i++)
{
vector<int > a;
a=nods[i];
cout<<" pentru nodul "<<i<<endl;
for(int j=0;j<a.size();j++)
cout<<a[j]<< " ";
cout<<endl;
}
}
map<int,int> nod;
int b[1000];
int DFS(int s){
int i;
b[s]=1;
for(i=0;i<nods[s].size();i++)
{
//cout<<nods[s][i];
if(b[nods[s][i]]==0)
DFS(nods[s][i]);
}
// cout<<s<<" ";
return 0;
}
int viz[10001];
int main ()
{
int c;
read_nod();
//out_date(n);
for(int i=1;i<=n;i++)
if(b[i]==0){
c++;
DFS(i);
}
g>>c;
return 0;
}