Pagini recente » Cod sursa (job #806927) | Cod sursa (job #2736425) | Cod sursa (job #1280309) | Cod sursa (job #1041257) | Cod sursa (job #801416)
Cod sursa(job #801416)
#include<cstdio>
#include<cstdlib>
int a[1000],n;
int comp(const void *p, const void *q)
{
int d = *(int*)p, b = *(int*)q;
if(d<b) return -1;
if(d>b) return 1;
return 0;
}
int cautare (int x)
{
int i=0, j=n-1,m;
while(i<j)
{
m=(i+j+1)/2;
if(x>=a[m])
i=m;
else
j=m-1;
}
if(x>=a[i])
return i;
return 0;
}
int main()
{
int w=0,i,j,g;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(a[0]),comp);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
g=cautare(a[i]+a[j]);
if(g>j)
w=w+(g-j);
}
printf("%d",--w);
}