Pagini recente » Cod sursa (job #2739893) | Cod sursa (job #617989) | Cod sursa (job #576284) | Cod sursa (job #1973332) | Cod sursa (job #822608)
Cod sursa(job #822608)
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
int v[805];
int bisearch(int val)
{
int i,step;
for(step=1;step <= n;step <<=1);
for(i=0;step;step >>= 1)
if(i + step <= n && v[i+step] <= val)
i|=step;
return i;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
int i,j,k;
long long sol = 0;
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)
{
k = bisearch(v[i] + v[j]);
if(k)
sol += k-j;
}
}
printf("%lld\n",sol);
return 0;
}