Cod sursa(job #36973)

Utilizator FlorianFlorian Marcu Florian Data 24 martie 2007 13:39:43
Problema Puteri Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
int main()
{int n,sol=0,a,b,c,x[100],y[100],z[100],i,j,ok,r;
FILE *f=fopen("puteri.in","r");
FILE *g=fopen("puteri.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d %d %d",&x[1],&y[1],&z[1]);
for (i=2;i<=n;i++)
	{ fscanf(f,"%d %d %d",&x[i],&y[i],&z[i]);
	for (j=i-1;j>=1;j--)
		{a=x[i]+x[j]; b=y[i]+y[j]; c=z[i]+z[j];
		if (a==0||b==0||c==0)
			{ok=0;
			if (a==0&&b!=0&&c!=0) {a=b; b=c; ok=1;}
			else if (b==0&&a!=0&&c!=0) {b=c; ok=1;}
			else if (c==0&&a!=0&&b!=0) {ok=1;}
			else sol++;
			if (ok) { r=a%b;
				while (r!=0) {a=b; b=r; r=a%b;}
				if (b!=1) sol++;}	}
		else {r=a%b;
			while (r!=0) {a=b; b=r; r=a%b;}
			if (b!=1){r=b%c;
				 while (r!=0) {b=c; c=r; r=b%c;}
				if (c!=1) sol++;}}}}
fprintf(g,"%d",sol);
fclose(f);
fclose(g);
return 0;}