Cod sursa(job #70771)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 7 iulie 2007 12:56:21
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<fstream>
#include<math.h>
using namespace std;
long a[100000],N,b[100000],c[100000],d[5];
void citire(){
ifstream fin("puteri.in");
fin>>N;
for (long i=0;i<N;i++)
  fin>>a[i]>>b[i]>>c[i];
}
long long numr(){
long nr=0,nr1,nr2;
for (long i=0;i<N-1;i++)
  for (long j=i+1;j<N;j++){
      nr1=0;
      short pp=1;
     if (a[i]+a[j]>1)
       d[nr1++]=a[i]+a[j];
     else
       if (a[i]+a[j]==1)
       pp=0;
     if (b[i]+b[j]>1)
       d[nr1++]=b[i]+b[j];
     else
       if (b[i]+b[j]==1)
       pp=0;
     if (c[i]+c[j]>1)
       d[nr1++]=c[i]+c[j];
     else
       if (c[i]+c[j]==1)
	 pp=0;
       if (pp==1){
       nr2=nr1;
     if (nr1==1)
	nr++;
     else
       if (nr1!=0){
	 short ok=0;
	 while (ok==0){
	    ok=1;
	    nr2--;
	    for (short i=0;i<nr2;i++)
	      if (d[i]<d[i+1]){
		 int aux=d[i];
		 d[i]=d[i+1];
		 d[i+1]=aux;
		 ok=0;}}
	    if (nr1==2)
	       if (d[0]%d[1]==0)
		 nr++;
	    if (nr1==3)
	       if (d[0]%d[1]==0&&d[0]%d[2]==0&&d[1]%d[2]==0)
		  nr++;
	 }         }
	 d[0]=0;
	 d[1]=0;
	 d[2]=0;
       }

return nr;
}
int main(){
ofstream fout("puteri.out");
citire();
fout<<numr();
fout<<"\n";
fout.close();
return 0;
}