Cod sursa(job #540715)
Utilizator | Data | 24 februarie 2011 12:01:54 | |
---|---|---|---|
Problema | Cautare binara | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<stdio.h>
#include<stdlib.h>
FILE *in,*out;
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int i,n,v[800],j,k,nr;
int main()
{
in=fopen("nrtri.in","rt");
out=fopen("nrtri.out","wt");
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)
fscanf(in,"%d",&v[i]);
qsort (v, n, sizeof(int), compare);
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
{
k=j+1;
while((v[i]+v[j])>=v[k] && k<=n)
k++;
nr+=k-1-j;
}
fprintf(out,"%d",nr);
}