Pagini recente » Diferente pentru preoni-2007/runda-3/solutii intre reviziile 53 si 11 | Istoria paginii utilizator/unibuc_gheorghe_posdarascu_anghel | Istoria paginii runda/simulare_etc/clasament | Istoria paginii numerele-sprague-grundy | Cod sursa (job #1445849)
#include<cstdio>
int a[1001][1001],i,j,n,m,vc[1001],v[1001],cate=1,nr,b[1001][1001];
void dfs(int nod)
{
int co;
for(co=1;co<=n;co++)
if(vc[co]==0&&a[nod][co]==1)
{
vc[co]=1;
v[++cate]=co;
dfs(co);
}
}
int main ()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
a[x][y]=a[y][x]=1;
}
v[1]=1;
vc[1]=1;
dfs(1);
for(i=2;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j])
a[v[i-1]][v[j]]=a[v[j]][v[i-1]]=1;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i][j]==0)
nr++;
printf("%d",nr);
return 0;
}