Cod sursa(job #2447694)

Utilizator robert.barbu27robert barbu robert.barbu27 Data 14 august 2019 12:19:01
Problema Puteri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 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,l[129];
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=0; i<=128; i++)
        l[i]=i%d;
    for(int i=1;i<=n;i++)
    {
        int a0=l[d-a[i][0]];
        int a1=l[d-a[i][1]];
        int a2=l[d-a[i][2]];
        if(a0<=64&&a1<=64&&a2<=64){
        rez+=rest[a0][a1][a2];
        }
        rest[l[a[i][0]]][l[a[i][1]]][l[a[i][2]]]++;


    }
    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;
}