Pagini recente » Cod sursa (job #2595272) | Cod sursa (job #2627439) | Cod sursa (job #2953241) | Cod sursa (job #2114055) | Cod sursa (job #629009)
Cod sursa(job #629009)
# include <cstdio>
# include <algorithm>
using namespace std;
int n, st,dr,mij,i,j,a,b;
int lg[900];
int sol=1;
int main ()
{
freopen ("nrtri.in","r",stdin);
freopen ("nrtri.out","w",stdout);
scanf ("%d",&n);
for (i=1;i<=n;i++)
{
scanf ("%d",&lg[i]);
}
sort(lg+1,lg+n+1);
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
{
//maximul
a=lg[i]+lg[j];
st=j+1; dr=n;
while (st<dr)
{
mij=st+(dr-st)/2;
if (lg[mij]>a)
dr=mij-1;
else st=mij;
}
if (st==dr)
{
a=dr;
}
else a=-1;
b=lg[j]-lg[i];
st=j+1; dr=n;
while (st<dr)
{
mij=st+(dr-st)/2;
if (lg[mij]<b)
st=mij+1;
else dr=mij;
}
if (st==dr)
{
b=dr;
}
else b=-1;
if (a!=-1&&b!=-1)
{
sol+=(a-b+1);
}
}
printf("%d\n",sol);
return 0;
}