Pagini recente » Cod sursa (job #2243872) | Cod sursa (job #2986229) | Cod sursa (job #2946083) | Cod sursa (job #1618020) | Cod sursa (job #2447693)
#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%mod;
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;
}