Pagini recente » Profil M@2Te4i | Cod sursa (job #11518) | Cod sursa (job #3204766) | Cod sursa (job #3193206) | Cod sursa (job #188818)
Cod sursa(job #188818)
#include<stdio.h>
#include<algorithm>
using namespace std;
long nrtri,i,j,k,n,v[801],suma;
long tz;
void cauta(int st,int dr)
{
long mij;
if(st>dr) return;
mij=(st+dr)/2;
if(v[mij]<=suma&&mij>tz) tz=mij;
if(v[mij]>suma) cauta(st,mij-1);
else if (v[mij]<=suma) cauta(mij+1,dr);
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%li",&n);
for(i=1;i<=n;i++)
scanf("%li",&v[i]);
sort(v+1,v+(n+1));
for(i=1;i<n-1;i++)
for(j=i+1;j<n;j++)
{
suma=v[i]+v[j];
tz=0;
cauta(j+1,n);
//printf("%li----%li------%li\n",suma,j+1,tz);
if(tz!=0)
nrtri+=tz-j;
}
printf("%li\n",nrtri);
return 0;
}