Pagini recente » Borderou de evaluare (job #1277089) | Borderou de evaluare (job #1877779) | Borderou de evaluare (job #1176291) | Borderou de evaluare (job #1870270) | Cod sursa (job #342622)
Cod sursa(job #342622)
#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;
}