Pagini recente » Cod sursa (job #615887) | Cod sursa (job #1040150) | Cod sursa (job #1585051) | Cod sursa (job #2804747) | Cod sursa (job #178693)
Cod sursa(job #178693)
#include <stdio.h>
#define B 16
#define MAXN 4100
#define MAXM 65550
unsigned int v[MAXM],w[MAXM];
unsigned int a[MAXN][MAXN/B+2];
unsigned int cnt[MAXM];
unsigned int n,m,i,j,x,y,s;
int main(){
FILE *f = fopen("triplete.in","r");
fscanf(f,"%d %d",&n,&m);
for(i = 1; i <= 65537; i++)
cnt[i] = cnt[i>>1]+(i&1);
for (i=1;i<=m;i++) {
fscanf(f,"%d %d",&x,&y);
v[i]=x;
w[i]=y;
a[x][y/B]=a[x][y/B]|(1<<(y%B));
a[y][x/B]=a[y][x/B]|(1<<(x%B));
}
fclose(f);
s=0;
for (i=1;i<=m;i++)
for (j=0;j<=n/B+1;j++)
s+=cnt[(a[v[i]][j]&a[w[i]][j])];
s=s/3;
FILE *g = fopen("triplete.out","w");
fprintf(g,"%d\n",s);
fclose(f);
return 0;
}