Pagini recente » Cod sursa (job #2528457) | Cod sursa (job #2266451) | Cod sursa (job #1742727) | Cod sursa (job #2490200) | Cod sursa (job #2075104)
#include <cstdio>
#include <algorithm>
using namespace std;
int a[805],n,nr;
int cautbin(int lg,int s,int x)
{
int i;
for(i=x;lg;lg>>=1)
if(i+lg<=n && a[i+lg]<=s)
i+=lg;
return i;
}
int numarare()
{
sort(a+1,a+n+1);
int lg=1;
for(lg=1;lg<=n;lg<<=1);
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
int s=a[i]+a[j];
int poz=cautbin(lg,s,j);
nr+=poz-j;
}
}
return nr;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("%d",numarare());
return 0;
}