Pagini recente » Cod sursa (job #509976) | Cod sursa (job #700029) | Cod sursa (job #2196987) | Istoria paginii runda/3_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #203945)
Cod sursa(job #203945)
#include <stdio.h>
#include <stdlib.h>
struct interval
{
int a,b;
};
interval v[850];
int compar(const void*p, const void*q)
{
interval *pp=(interval*)p, *qq=(interval*)q;
interval u=*pp, v=*qq;
if (u.a<v.a)
return -1;
if (u.a>v.a)
return 1;
return u.a-v.a;
}
int main()
{
int n,i,j,aux,count=0,s,d,m;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&v[i].a);
qsort(v,n,sizeof(v[0]),compar);
for (i=1; i<n; i++)
for (j=i+1; j<n-1; j++)
{
s=j; d=n-1;
while (s!=d)
{
m=(s+d)/2;
if (v[i].a+v[j].a>v[m].a)
s=m+1;
else d=m;
}
count=count+(s-j);
}
printf("%d",count);
}