Cod sursa(job #236015)
Utilizator | Data | 26 decembrie 2008 15:46:41 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
#include <stdlib.h>
int e[804];
int compar(const void * a,const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
int a,n,i,j,d=0,l;
FILE *f1,*f2;
f1=fopen("nrtri.in","r");
f2=fopen("nrtri.out","w");
fscanf(f1,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f1,"%d",&e[i]);
qsort(e,n+1,sizeof(int),compar);
for(i=1;i<=n;i++)
{
for(l=i+1;l<=n;l++)
{
for(j=n;j>=l+1;j--)
if(e[j]<=e[i]+e[l])
{
d=d+(j-l);
break;
}
}
}
fprintf(f2,"%d",d);
return 0;
}