Cod sursa(job #2447688)

Utilizator robert.barbu27robert barbu robert.barbu27 Data 14 august 2019 12:12:01
Problema Puteri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 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)
{long long 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-a1)][(d-a2)];
        rest[a0][a1][a2]++;
        }

    }
    return rez;
}


int main()
{
f>>n;
long long 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;
}