Cod sursa(job #2447685)

Utilizator robert.barbu27robert barbu robert.barbu27 Data 14 august 2019 12:06:36
Problema Puteri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>


using namespace std;

ifstream f("puteri.in");
ofstream g("puteri.out");


int rest[65][65][65],a[100005][3],n;
bool prim[129];
short parimp[129];
long long int rezolva(int d)
{int rez=0;
 memset(rest,0,sizeof rest);
    for(int i=1;i<=n;i++)
    {
        int a0=a[i][0]%d;
        int a1=a[i][1]%d;
        int a2=a[i][2]%d;
        if(a0<=64&&a1<=64&&a2<=64){
        rez+=rest[(d-a0)%d][(d-a1)%d][(d-a2)%d];
        rest[a0][a1][a2]++;
        }

    }
    return rez;
}


int main()
{
f>>n;
int ans=0;
for(int i=1;i<=n;i++)
{
f>>a[i][0]>>a[i][1]>>a[i][2];
}
for(int i=2;i<=28;i++)
{
    parimp[i]=1;
}
for(int i=2;i<=128;i++)
{
    if(prim[i]==0)
    {
        for(int j=i;j<=128;j+=i)
        {
            prim[j]=1;
            parimp[i]*=-1;
        }
        for(int j=i*i;j<=128;j+=i*i)
        {
            parimp[j]=0;
        }
    }
    if(parimp[i]!=0)
    {
        ans+=parimp[i]*rezolva(i);
    }
}
g<<ans;
}