Pagini recente » Cod sursa (job #3283671) | Cod sursa (job #717121) | Cod sursa (job #1876734) | Cod sursa (job #2408472) | Cod sursa (job #420065)
Cod sursa(job #420065)
#include<stdio.h>
#include<vector>
#define MAXN 100005
using namespace std;
int n,m,i,j,nrc,x,y;
int level[MAXN],c[MAXN],v[MAXN];
vector <int> a[MAXN];
void df(int nod,int tata)
{
int i,nnod;
level[nod]=level[tata]+1;
c[nod]=level[nod];
v[nod]=1;
for(i=0;i<a[nod].size();i++)
{
nnod=a[nod][i];
if(!v[nnod])
{
df(nnod,nod);
if(c[nnod] < c[nod])
c[nod]=c[nnod];
if(c[nnod] >= level[nod])
nrc++;
}
else
if(nnod!=tata && c[nnod] < c[nod])
c[nod]=c[nnod];
}
}
int main(void)
{
freopen("biconex.in","r",stdin);
freopen("biconex.out","w",stdout);
scanf("%d%d",&n,&m);
while(m--)
{
scanf("%d%d",&x,&y);
a[x].push_back(y);
a[y].push_back(x);
}
df(1,0);
printf("%d\n",nrc);
return 0;
}