Cod sursa(job #25020)

Utilizator ViksenVictor-Nicolae Savu Viksen Data 4 martie 2007 09:52:33
Problema Puteri Scor 40
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 0.8 kb
#include <stdio.h>

struct puteri { int x,y,z; } A[100001];
int n,nr=0;

void ReadData ()
{
 	freopen ( "puteri.in" , "r" , stdin );
    scanf ( "%d" , &n );
    int i;
    for ( i=0 ; i<n ; i++ )
       scanf ( "%d %d %d" , &A[i].x , &A[i].y , &A[i].z );
    fclose ( stdin );
}

void WriteData ()
{
 	freopen ( "puteri.out" , "w" , stdout );
    printf ( "%d\n" , nr );
    fclose ( stdout );
}

int cmmdc ( int x , int y )
{
 	while ( x && y )
      if (x>y) x%=y; else y%=x;
    return (x)?(x):(y);
}

void Solve ()
{
 	int i,j;
 	for ( i=0 ; i<n-1 ; i++ )
       for ( j=i+1 ; j<n ; j++ )
          if (cmmdc ( cmmdc ( A[i].x+A[j].x , A[i].y+A[j].y ) , A[i].z+A[j].z ) > 1)
            nr++;
}

int main ()
{
 	ReadData();
    Solve ();
    WriteData ();
 	return 0;
}