Pagini recente » Cod sursa (job #3165425) | Cod sursa (job #16767) | Cod sursa (job #453575) | Cod sursa (job #8483) | Cod sursa (job #45351)
Cod sursa(job #45351)
#include<fstream>
using namespace std;
int cmmdc(int a,int b)
{
int r;
while (b) { r=a%b; a=b; b=r; }
return a;
}
int a[65][65][65],b[129][129],i,j,k,u,v,w;
long N,X,r;
fstream fin,fout;
int main(void)
{
fin.open("puteri.in",ios::in);
fout.open("puteri.out",ios::out);
for (i=0;i<=64;i++)
for (j=0;j<=64;j++)
for (k=0;k<=64;k++)
a[i][j][k]=0;
for (i=0;i<=128;i++)
for (j=0;j<=128;j++)
b[i][j]=cmmdc(i,j);
fin>>N;
for (i=1;i<=N;i++)
{
fin>>u>>v>>w;
a[u][v][w]++;
}
X=0;
for (u=0;u<=64;u++)
for (v=0;v<=64;v++)
for (w=0;w<=64;w++)
if (a[u][v][w]>0)
{
r=a[u][v][w];
X=X+(r-1)*r/2;
i=u; j=v;
for (k=w+1;k<=64;k++)
if ((a[i][j][k]>0)&&(b[u+i][b[v+j][w+k]]>1))
X=X+r*a[i][j][k];
for (j=v+1;j<=64;j++)
for (k=0;k<=64;k++)
if ((a[i][j][k]>0)&&(b[u+i][b[v+j][w+k]]>1))
X=X+r*a[i][j][k];
for (i=u+1;i<=64;i++)
for (j=0;j<=64;j++)
for (k=0;k<=64;k++)
if ((a[i][j][k]>0)&&(b[u+i][b[v+j][w+k]]>1))
X=X+r*a[i][j][k];
}
fout<<X<<endl;
fin.close();
fout.close();
return 0;
}