Cod sursa(job #211258)

Utilizator zombie_testertest test zombie_tester Data 1 octombrie 2008 16:54:14
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
# include <cstdio>

# define FIN "triplete.in"
# define FOUT "triplete.out"
# define MAXN 210
# define MAXL 4100
# define MAXD 1048576
# define MAXK 65540

unsigned int N,M,i,j,cont;
unsigned int A[MAXL][MAXN];
unsigned int a[MAXK],b[MAXK];
unsigned int cnt[MAXD];

    int main()
    {
        freopen(FIN,"r",stdin);
        freopen(FOUT,"w",stdout);
        
        scanf("%d%d",&N,&M);
        for (i = 1; i <= M; ++i)
          {
             scanf("%d%d",&a[i],&b[i]);
             A[a[i]][b[i]/20] += 1<<(b[i]%20);
             A[b[i]][a[i]/20] += 1<<(a[i]%20); 
          }
          
        /*for (i = 1; i <= MAXD; ++i)
          cnt[i] = cnt[i>>1] + (i & 1);
        */
        for (i = 1; i <= M; ++i)
          for (j = N/20; j >= 0; --j)
            cont += cnt[A[a[i]][j]&A[b[i]][j]];
            
        printf("%d",cont/3);
        
        return 0;
    }