Pagini recente » Cod sursa (job #3191676) | Cod sursa (job #1356414) | Cod sursa (job #1283319) | Cod sursa (job #784475) | Cod sursa (job #1873222)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define N 801
using namespace std;
int i,j,n,nr,v[N];
void quick(int li,int ls)
{
int i=0,j=0,aux=0,m=0;
m=v[(li+ls)/2];
i=li; j=ls;
while(i<=j)
{
while(v[i]<m && i<ls)
i++;
while(v[j]>m && j>li)
j--;
if(i<=j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}}
if(i<ls)
quick(i,ls);
if(j>li)
quick(li,j);
}
int cb(int x,int l,int r)
{
int mid,p=j;
while(l<=r)
{
mid=l+(r-l)/2;
if(v[mid]<=x)
{
l=mid+1;
p=mid;
}
else
r=mid-1;
}
return p;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&v[i]);
quick(0,n-1);
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++)
nr+=cb(v[i]+v[j],j+1,n-1)-j;
printf("%d",nr);
return EXIT_SUCCESS;
}