Pagini recente » Cod sursa (job #2592629) | Cod sursa (job #2564050) | Cod sursa (job #952409) | Cod sursa (job #1757473) | Cod sursa (job #27563)
Cod sursa(job #27563)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define nmax 4112
#define mmax 65536
int n,m,i,j,a[mmax],b[mmax],k,sol;
char adj[nmax][nmax/8],x;
int nr[256];
int main()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=0;i<m;i++)
{
scanf("%d%d",a+i,b+i);
--a[i],--b[i];
adj[a[i]][b[i]/8]|=1<<b[i]%8;
adj[b[i]][a[i]/8]|=1<<a[i]%8;
}
memset(nr,0,sizeof(nr));
for (i=0;i<256;i++)
{
if (i&1==1) ++nr[i];
if (i&2==2) ++nr[i];
if (i&4==4) ++nr[i];
if (i&8==8) ++nr[i];
if (i&16==16) ++nr[i];
if (i&32==32) ++nr[i];
if (i&64==64) ++nr[i];
if (i&128==128) ++nr[i];
}
for (i=0;i<m;i++)
{
for (j=0;j<=n/8+1;j++)
{
x=adj[a[i]][j]&adj[b[i]][j];
// sol+=nr[adj[a[i]][j]&adj[b[i]][j]];
if (x&1) ++sol;
if (x&2) ++sol;
if (x&4) ++sol;
if (x&8) ++sol;
if (x&16) ++sol;
if (x&32) ++sol;
if (x&64) ++sol;
if (x&128) ++sol;
}
}
printf("%d\n",sol/3);
return 0;
}