Cod sursa(job #1617982)

Utilizator bob123bobelus bob bob123 Data 27 februarie 2016 17:28:15
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#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;
}