Pagini recente » Cod sursa (job #1288895) | Cod sursa (job #1999504) | Cod sursa (job #1254367) | Cod sursa (job #2232364) | Cod sursa (job #1254219)
#include <cstdio>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int a[1001], i, j, k, z, n, ok, aux;
int cauta(int a[], int st, int dr, int k)
{
int r = 0, mij, st1;
st1 = st;
while(st <= dr)
{
mij = (st + dr) / 2;
if(a[mij] <= k)
{
st = mij + 1;
}
else
dr = mij - 1;
}
while(a[mij] > k)
{
mij--;
}
return mij;
}
int main()
{
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
for(i = 0; i < n-2; i++)
{
for(j = i+1; j < n-1; j++)
{
z = cauta(a, j+1, n-1, a[i] + a[j]);
if(z > j-1)
aux += z - j;
}
}
printf("%d", aux);
return 0;
}