Pagini recente » Borderou de evaluare (job #641036) | Cod sursa (job #703452) | Cod sursa (job #1017392) | Cod sursa (job #1543595) | Cod sursa (job #1198059)
#include <fstream>
#include <algorithm>
#define Nmax 805
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int sum,a[Nmax],n,i,j,h;
int BinSearch (int val)
{
int put,poz;
for (put=1;put<=val;put=put<<1);
for (poz=1;put;put=put>>1)
if (a[poz+put]<=val && poz+put<=n)
poz+=put;
return poz;
}
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
sort(a+1,a+n+1);
for (i=1;i<n-1;i++)
for (j=i+1;j<n;j++)
{
h=BinSearch(a[i]+a[j]);
if (a[h]<=a[i]+a[j] && h>j && h<=n)
sum+=h-j;
}
g<<sum;
return 0;
}