Pagini recente » Cod sursa (job #556499) | Cod sursa (job #6387) | Cod sursa (job #1287597) | Cod sursa (job #3258442) | Cod sursa (job #822611)
Cod sursa(job #822611)
#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;
}