Cod sursa(job #1618051)

Utilizator titusTitus A titus Data 27 februarie 2016 17:53:23
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int j,S,k,sol,n,i,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=0; i<=n; ++i)
        scanf("%d", &a[i]);
    sort(a, a+n);
    for(i=1; i<n-1; i++)
        for(j=i+1; j<n; j++)
            {
                S = a[i] + a[j];
                k = upper_bound(a, a+n, S) - a;
                sol += (k-j+1);
            }
    printf("%d", sol);
    return 0;
}