Cod sursa(job #211264)

Utilizator zombie_testertest test zombie_tester Data 1 octombrie 2008 17:04:48
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
# include <cstdio>

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

int N,M,i,j,cont;
int A[MAXL][MAXN];
int a[MAXK],b[MAXK];
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);
        
        N = N / 20;
        for (i = 1; i <= M; ++i)
          for (j = N; j >= 0; --j)
            cont += cnt[A[a[i]][j]&A[b[i]][j]];
            
        printf("%d",cont/3);
        
        return 0;
    }