Pagini recente » Cod sursa (job #1632050) | Cod sursa (job #1796068) | Cod sursa (job #2208569) | Cod sursa (job #2883543) | Cod sursa (job #6971)
Cod sursa(job #6971)
#include <stdio.h>
#define NMAX 4098
FILE *f = fopen("triplete.in","rt"), *g = fopen("triplete.out","wt");
struct lista{long int nod;
lista *urm;} *vf[NMAX];
long int n,i,j,k,nrt,h[NMAX],hc[NMAX],m;
void citire()
{
long int x,y;
lista *p;
fscanf(f,"%ld %ld",&n,&m);
for (i=1;i<=m;i++)
{fscanf(f,"%ld %ld",&x,&y);
p=new lista;
p->nod=x;
p->urm=vf[y];
vf[y]=p;
p=new lista;
p->nod=y;
p->urm=vf[x];
vf[x]=p;
}
}
void BF(long int x)
{
long int cd[NMAX],final,i,j,s;
long int ok;
lista *p;
cd[1]=x;
for (i=1;i<=n;i++)
hc[i]=h[i];
hc[x]=1;
final=1;
p=vf[x];
s=0;
while (p)
{if (!hc[p->nod]) {hc[p->nod]=1;cd[++final]=p->nod;}
p=p->urm;}
for (i=2;i<=final;i++)
for (j=i+1;j<=final;j++)
{p=vf[cd[i]];
while (p)
{if (p->nod==cd[j]) {s++;break;}
p=p->urm;
}
}
nrt+=s;
}
void solve()
{
nrt=0;
for (i=1;i<=n;i++)
{BF(i);
h[i]=1;}
fprintf(g,"%ld",nrt);
}
int main()
{
citire();
solve();
fclose(f);
fclose(g);
return 0;
}