Pagini recente » Cod sursa (job #2401375) | Cod sursa (job #2331225) | Cod sursa (job #2326968) | Cod sursa (job #306078) | Cod sursa (job #1254232)
#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--;
}
while(a[mij] <= k && mij >= st1)
{
mij--;
r++;
}
return r;
}
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", z);
return 0;
}