Cod sursa(job #1481301)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 4 septembrie 2015 09:56:34
Problema Triplete Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<stdio.h>
int n,m,a[65537],b[65537],i,j,t,c[4097][130],r,l;
int main() {
    freopen("triplete.in","r",stdin),freopen("triplete.out","w",stdout),scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++) {
        scanf("%d%d",a+i,b+i);
        if(a[i]>b[i])
             j=a[i],a[i]=b[i],b[i]=j;
        c[a[i]][b[i]/32]+=(1<<(b[i]%32));
    }
    for(i=1;i<=m;i++)
    for(j=0;j<=n/32;j++) {
        for(l=0,r=c[a[i]][j]&c[b[i]][j];r;l++,r&=(r-1));
        t+=l;
    }
    printf("%d",t);
}