Cod sursa(job #25515)

Utilizator Darth_NiculusIvan Nicolae Darth_Niculus Data 4 martie 2007 12:47:59
Problema Puteri Scor 40
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 0.81 kb
#include <stdio.h>

#define NMAX 100010
#define CMMDC(a,b,c) (cmmdc(cmmdc(a,b),c))

struct Triplet
{
 short int a,b,c;
} A[NMAX];

int i,j,n,m,REZ=0;

int cmmdc(int a, int b)
{
 if (a == 0)
   a=b;
 if (b == 0)
   b=a;
 if (a == 1)
   b=1;
 if (b == 1)
   a=1;
   
 while (a!=b)
      if (a>b)
        a-=b;
        else if (b>a)
               b-=a;
 return a;
}

int main()
{
 freopen("puteri.in","r",stdin);
 freopen("puteri.out","w",stdout);

 scanf("%d",&n);

 for (i=1;i<=n;i++)
    scanf("%d%d%d",&A[i].a,&A[i].b,&A[i].c);

 REZ=0;
 for (i=1;i<=n-1;i++)
 for (j=i+1;j<=n;j++)
    {
     int X=(A[i].a+A[j].a),Y=(A[i].b+A[j].b),Z=(A[i].c+A[j].c);
     if (CMMDC(X,Y,Z) > 1)
       REZ++;
    }

 printf("%d",REZ);

 fclose(stdin);
 fclose(stdout);
 
 return 0;
}