Pagini recente » Cod sursa (job #2385880) | Cod sursa (job #473851) | Cod sursa (job #736281) | Cod sursa (job #1193449) | Cod sursa (job #206026)
Cod sursa(job #206026)
#include<stdio.h>
#include<string.h>
long long nv,m,i,j,aa,bb,a[4096][128],f[65536],s[65536],
sol,nb[65536],NB(long long nr);
void readd(),swap(),solve();
int main()
{ readd();
solve();
printf("%lld",sol);
return 0;
}
void readd()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
scanf("%lld%lld",&nv,&m);
for(i=1;i<65536;i++) nb[i]=nb[i>>1]+(i&1);
for(i=0;i<m;i++)
{ scanf("%lld%lld",&aa,&bb);aa--;bb--;
if(aa>bb)swap();
a[aa][bb>>5]|=(1<<(bb&31));
f[i]=aa;s[i]=bb;
}
}
void solve()
{
for(i=0;i<m;i++)
for(j=0;j<128;j++)
sol+=NB(a[f[i]][j]&a[s[i]][j]);
}
long long NB(long long nr)
{
return nb[nr>>16]+nb[nr&65535];
}
void swap()
{ long long aux=aa;aa=bb;bb=aux;}