Cod sursa(job #60894)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 17 mai 2007 16:31:44
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<stdio.h>
long int a[129][129][129],nr[129][129][129],i,j,k,m,n,x[100001],y[100001],z[100001],sol;
int main()
{       FILE *f,*g;
	f=fopen("puteri.in","r");
	g=fopen("puteri.out","w");
	a[0][0][0]=-1;
	for(i=0;i<=128;i++)
	 for(j=i;j<=128;j++)
	  for(k=j;k<=128;k++)
	   if(!a[i][j][k])
	    { a[i][j][k]=-1;
	      a[i][k][j]=-1;
	      a[j][i][k]=-1;
	      a[j][k][i]=-1;
	      a[k][i][j]=-1;
	      a[k][j][i]=-1;
	      for(m=2;m*k<=128;m++)
	      { a[m*i][m*j][m*k]=1;
		a[m*i][m*k][m*j]=1;
		a[m*j][m*i][m*k]=1;
		a[m*j][m*k][m*i]=1;
		a[m*k][m*i][m*j]=1;
		a[m*k][m*j][m*i]=1;
	      }
	     }
	   fscanf(f,"%ld",&n);
	   fscanf(f,"%ld%ld%ld",&x[1],&y[1],&z[1]);
	   for(k=2;k<=n;k++)
	   { fscanf(f,"%ld%ld%ld",&x[k],&y[k],&z[k]);
	     for(j=1;j<k;j++)
	     nr[x[k]+x[j]][y[k]+y[j]][z[k]+z[j]]++;
	   }
	   for(i=0;i<=128;i++)
	    for(j=i;j<=128;j++)
	     for(k=j;k<=128;k++)
	      if(!(a[i][j][k]+1))
	      { sol+=nr[i][j][k];
		sol+=nr[i][k][j];
		sol+=nr[j][i][k];
		sol+=nr[j][k][i];
		sol+=nr[k][i][j];
		sol+=nr[k][j][i];
              }

	   fprintf(g,"%ld\n",sol);
	   fcloseall();
	   return 0;
}