Pagini recente » Cod sursa (job #2894890) | Cod sursa (job #2839200) | Cod sursa (job #3121372) | Cod sursa (job #3253344) | Cod sursa (job #653676)
Cod sursa(job #653676)
#include <iostream>
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> g[100005],gt[100005];
int n,m,viz1[100005],viz2[100005],viz3[100005];
void citire()
{int x,y;
freopen("ctc.in","r",stdin);
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++)
{
g[x].push_back(y);
gt[y].push_back(x);
}
}
void dfsg(int x)
{int i;
viz1[x]=1;
for(i=0;i<g[x].size();++i)
if (viz1[g[x][i]]==0) dfsg(g[x][i]);
}
void dfsgt(int x)
{int i;
viz2[x]=viz1[x]+1;
for(i=0;i<gt[x].size();++i)
if (viz1[gt[x][i]]==0) dfsgt(gt[x][i]);
}
int main()
{int nr;
citire();
for(int i=1;i<=n;++i)
if (viz3[i]==0)
{
dfsg(i);
dfsgt(i);
++nr;
}
cout<<nr;
freopen("ctc.out","w",stdout);
return 0;
}