Cod sursa(job #342622)

Utilizator LuffyBanu Lavinia Luffy Data 22 august 2009 15:53:22
Problema Numarare triunghiuri Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#define dim 801
using namespace std;
FILE *f=fopen("nrtri.in","r"), *g=fopen("nrtri.out","w");

int a[dim],v[4],k,n,x,as,ev,p;

void init()
{v[k]=v[k-1];}

int succesor()
{v[k]=v[k]+1;
  if(v[k]<=n) return 1;
  return 0;
}


int valid()
{
 return 1;
}

int solutie()
{ if(k==3)
   {if( (a[v[1]]+a[v[2]]>=a[v[3]]) && (a[v[1]]+a[v[3]]>=a[v[2]]) && (a[v[2]]+a[v[3]]>=a[v[1]]) ) return 2;
   return 1;}
  return 0;
}

int afisare()
{ x++; return 0;}


void bt()
{k=1;
 init();
   while(k>0)
 {as=1;
  ev=0;
    while(as&& !ev)
   {as=succesor();
	  if(as)
		  ev=valid();
   }
 if(as)
  {
	p=solutie();
    if(p==2) afisare();
	else if(p==0) {k++; init();}
  }
  else k--;
 }
}

 int main()
{int i;
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&a[i]);
bt();
   fprintf(g,"%d\n",x);
fclose(f);
fclose(g);
return 0;
}