Pagini recente » Istoria paginii runda/very-long_olimp | Cod sursa (job #982118) | Cod sursa (job #1116304) | Cod sursa (job #2853272) | Cod sursa (job #237608)
Cod sursa(job #237608)
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[805];
int n,nrt;
int cautbin (int val)
{
int in=1,sf=n,mij;
while (in<=sf)
{
mij=in+(sf-in)/2;
if (a[mij]<=val && a[mij+1]>val)
return mij;
else if (a[mij]<val)
in=mij+1;
else
sf=mij-1;
}
return n;
}
int main ()
{
freopen ("nrtri.in","r",stdin);
freopen ("nrtri.out","w",stdout);
int i,j;
scanf ("%d",&n);
for (i=1; i<=n; ++i)
scanf ("%d",&a[i]);
//sort (a+1,a+n+1);
a[n+1]=2000;//000000;
for (i=1; i<n-1; ++i)
for (j=i+1; j<=n-1; ++j)
nrt+=cautbin (a[i]+a[j])-j;
printf ("%d",nrt);
return 0;
}