Pagini recente » Cod sursa (job #1966812) | Cod sursa (job #2070784) | Cod sursa (job #2928442) | Cod sursa (job #1864405) | Cod sursa (job #178679)
Cod sursa(job #178679)
#include<stdio.h>
struct asd {long int a,b;}M[68000];
long int ve[4500][4500/16];
char cnt[50000];
long int q,x,y,nr,i,j,a,b,n,m;
int main(){
FILE *f=fopen("triplete.in","r");
fscanf(f,"%ld %ld",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%ld %ld",&a,&b);
M[i].a=a;
M[i].b=b;
ve[a][(b/16)]|=(1<<(b%16));
ve[b][(a/16)]|=(1<<(a%16));
}
fclose(f);
for(i = 1; i < 40000; i++)
cnt[i] = cnt[i>>1]+(i&1);
for(i=1;i<=m;i++){
x=M[i].a;
y=M[i].b;
if(x>y)
q=x;
else
q=y;
for(j=0;j<=n/16;j++){
a=ve[x][j];
b=ve[y][j];
b=b>>q;
a=a>>q;
a=a&b;
nr+=cnt[a];
}
}
FILE *g=fopen("triplete.out","w");
fprintf(g,"%d",nr);
fclose(g);
return 0;
}