Cod sursa(job #27938)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 7 martie 2007 12:25:57
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define nmax 100010

int n,a[nmax],b[nmax],c[nmax],r[128][128][128],i,j,k,sol,ss,d;

int main()
{
    freopen("puteri.in","r",stdin);
    freopen("puteri.out","w",stdout);

    scanf("%d",&n);
    for (i=0;i<n;i++)
        scanf("%d%d%d",a+i,b+i,c+i);
    for (d=2;d<=128;d++)
    {
        memset(r,0,sizeof(r));
        for (i=0;i<n;i++)
            r[a[i]%d][b[i]%d][c[i]%d]++;
        for (i=0;2*i<=d;i++)
            for (j=0;2*j<=d;j++)
                for (k=0;2*k<=d;k++)
                    if ((i==(d-i)%d)&&(j==(d-j)%d)&&(k==(d-k)%d))
                        sol+=r[i][j][k]*(r[i][j][k]-1)/2;
                    else
                        sol+=r[i][j][k]*r[(d-i)%d][(d-j)%d][(d-k)%d];
    }
    printf("%d\n",sol);

    return 0;
}