Cod sursa(job #177073)

Utilizator ghiutaalexGhiuta Alex ghiutaalex Data 12 aprilie 2008 10:42:13
Problema Numarare triunghiuri Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
int v[5],x[1000],r,n;
int valid(int k)
{int i,j;
 if(k>1) if(v[k]<=v[k-1]) return 0;
 if(k==3) {if(x[v[1]]+x[v[2]]<x[v[3]]) return 0;
           else if(x[v[1]]+x[v[3]]<x[v[2]]) return 0;
                else if(x[v[2]]+x[v[3]]<x[v[1]]) return 0;}
 return 1;
}
void bkt(int k)
{int i;
 for(i=1;i<=n-3+k;i++)
	{v[k]=i;
         if(valid(k)) if(k==3) r++;
                      else bkt(k+1);}
}
int main()
{int i;
 FILE*f=fopen("nrtri.in","r");
 FILE*g=fopen("nrtri.out","w");
 fscanf(f,"%d",&n);
 for(i=1;i<=n;i++)
	fscanf(f,"%d",&x[i]);
 bkt(1);
 fprintf(g,"%d",r);
 fcloseall();
 return 0;
}