Pagini recente » Cod sursa (job #523681) | Cod sursa (job #2397209) | Cod sursa (job #449103) | Cod sursa (job #68220) | Cod sursa (job #1506146)
#include <stdio.h>
#include <stdlib.h>
FILE *fin, *fout;
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
fin = fopen ("nrtri.in", "r");
fout = fopen ("nrtri.out", "w");
int n,v[801],i,j,k,nr=0;
fscanf(fin,"%d", &n);
for(i=0;i<n;++i)
fscanf(fin, "%d", &v[i]);
qsort (v, n, sizeof(int), compare);
//O(n^3)
for(i=0;i<n-2;++i)
for(j=i+1;j<n-1;++j)
for(k=j+1;k<n;++k)
{
//fprintf(fout, "%d %d %d \n", v[i], v[j], v[k]);
if(v[k]>v[i]+v[j]) break;
if(v[i]+v[j]>=v[k] && v[i]+v[k]>=v[j] && v[j]+v[k]>=v[i]) nr++;
}
fprintf(fout,"%d\n", nr);
fclose(fin);
fclose(fout);
return 0;
}