Pagini recente » Cod sursa (job #467496) | Cod sursa (job #3261265) | Cod sursa (job #3196116) | Cod sursa (job #260537) | Cod sursa (job #629689)
Cod sursa(job #629689)
#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;
}
if (a[mij]>x)
{
dr=mij-1;
mij=(st+dr)/2;
}
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];
cb(sum,j+1);
nr=nr+poz-j;/*
for (k=j+1; k<=poz; ++k)
//if (a[i]+a[j]>=a[k] && a[i]+a[k]>=a[j] && a[k]+a[j]>=a[i])
++nr;*/
}
}
printf("%d",nr);
return(0);
}