Pagini recente » Cod sursa (job #783935) | Cod sursa (job #657357) | Cod sursa (job #3258890) | Cod sursa (job #2334187) | Cod sursa (job #1575132)
#include <cstdio>
#include <algorithm>
#include <cstdio>
using namespace std;
int n,i,j,v[8005],p,nr;
int caut(int stg, int dr, int s)
{
int mijloc,poz;
int primul=stg;
while(stg<=dr)
{
mijloc=(stg+dr)/2;
if(v[mijloc]<=s)
{
stg=mijloc+1;
poz=mijloc;
}
else
{
dr=mijloc-1;
}
}
if(primul==stg)
return 0;
return poz-primul+1;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
sort(v+1,v+n+1);
for (i=1; i<=n; i++)
for (j=i+1; j<=n; j++)
{
int s=v[i]+v[j];
nr+=caut(j+1,n,s);
}
printf("%d",nr);
return 0;
}