Pagini recente » Cod sursa (job #2456685) | Cod sursa (job #561248) | Cod sursa (job #2105043) | Cod sursa (job #2634174) | Cod sursa (job #1617982)
#include <cstdio>
#include <algorithm>
using namespace std;
int j,S,k,sol,n,i,v[11],poz[11],a[1001];
int cb (int S, int i) ///ci-indicele de inceput, cs-indicele de sfarsit al cautarii
{
int j=n, mij, sol=0;
while (i <= j)
{
mij = (i+j)/2;
if (S>=a[mij]) sol=mij, i=mij+1; ///te opresti pe ultimul dintre cele egale
else j=mij-1;
}
return sol;
}
int main()
{
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
scanf("%d", &n);
for(i=1;i<=n;++i)
scanf("%d", &a[i]);
sort(a+1,a+1+n);
for(i=1; i<n-1; i++)
for(j=i+1; j<n; j++)
{
S = a[i] + a[j];
k = cb(S, j+1);
sol += k-j+1;
}
printf("%d", sol);
return 0;
}