Pagini recente » Cod sursa (job #3279350) | Cod sursa (job #2647616) | Cod sursa (job #2978241) | Cod sursa (job #2918579) | Cod sursa (job #2066136)
#include <cstdio>
#include <algorithm>
using namespace std;
int n,v[1000];
int upper_bd(int l, int r, int x)
{
int mid,rs=n;
while(l<=r)
{
mid = l + (r-l)/2;
if(v[mid] < x) l = mid + 1;
else if(v[mid] > x)
{
r = mid - 1;
}
else
{
rs = mid;
l = mid + 1;
}
}
return r;
}
int main()
{
int i,j,poz,sol=0;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",v+i);
sort(v,v+n);
//printf("%d\n",upper_bd(1,n,4));
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
poz = upper_bd(j+1,n-1,v[i]+v[j]);
if(poz < n)
sol += poz - j;
}
printf("%d",sol);
}