Pagini recente » Cod sursa (job #109933) | Cod sursa (job #2632994) | Cod sursa (job #414036) | Cod sursa (job #884798) | Cod sursa (job #629975)
Cod sursa(job #629975)
#include<stdio.h>
#include<algorithm>
using namespace std;
int i,n,poz,sum,j,k,nr,a[801];
inline void cb(int x,int xx){
int st,dr,mij;
st=xx;
dr=n;
mij=(st+dr)/2;
while (st<=dr){
if (a[mij]<x)
{
poz=mij;
st=mij+1;
mij=(st+dr)/2;
}
else
if (a[mij]>x)
{
dr=mij-1;
mij=(st+dr)/2;
}
else
if (a[mij]==x)
{
poz=mij;
break;
}
}
}
int main(){
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; ++i) scanf("%d",&a[i]);
sort(a+1,a+n+1);
for (i=1; i<=n-2; ++i)
{
for (j=i+1; j<=n-1; ++j)
{
sum=a[i]+a[j];
poz=j;
cb(sum,j+1);
nr+=poz-j;
}
}
printf("%d",nr);
return(0);
}