Pagini recente » Cod sursa (job #1001750) | Cod sursa (job #176050) | Istoria paginii runda/grind_baraje_liceu | Rating Radu Miruna (mirunar) | Cod sursa (job #200529)
Cod sursa(job #200529)
#include <cstdio>
#include <algorithm>
using namespace std;
long n,m,a,b,i,j,v[4097][258],g,p,sol;
long x[65537],y[65537],b2[65537];
int main(){
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
b2[0]=0;
b2[1]=1;
for (i=2;i<(1<<16);i++)
{
if (i&1)
b2[i]=b2[i>>1]+1;
else
b2[i]=b2[i>>1];
}
scanf("%d%d",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
//il marchez pe b ca vecin al lui a
g=(b-1)/16;
p=((b-1)&15)+1;
v[a][g]=v[a][g]|(1<<(16-p));
//il marchez pe a ca vecin al lui b
g=(a-1)/16;
p=((a-1)&15)+1;
v[b][g]=v[b][g]|(1<<(16-p));
x[i]=a;
y[i]=b;
}
for (i=1;i<=m;i++)
{
for (j=0;j<=256;j++)
sol+=b2[v[x[i]][j]&v[y[i]][j]];
}
printf("%d\n",sol/3);
return 0;
}