Cod sursa(job #2075080)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 25 noiembrie 2017 11:17:53
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int n;
int a[801];

int cautbin(int x, int n, int j, int l)
{
    int i;
    for(l, i=j;l;l>>=1)
        if(i + l <= n && a[i + l] <= x)
            i+=l;
    return i;
}
int main()
{
    freopen("nrtri.in", "r", stdin);
    freopen("nrtri.out", "w", stdout);
    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        scanf("%d ", &a[i]);
    int lg;
    int tot=0;
    for(lg=1; lg<=n; lg<<=1);
    sort(a+1, a+n+1);
    for(int i=1; i<n; i++)
        for(int j=i+1; j<=n; j++)
        {
            int s=a[i]+a[j];
            tot=tot+(n-cautbin(s, n,j, lg));
        }
    printf("%d", tot);

    return 0;
}