Cod sursa(job #2066144)

Utilizator mirunaFmiruna mirunaF Data 14 noiembrie 2017 18:40:19
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("nrtri.in");
ofstream out("nrtri.out");

const int N=801,L=15;
int n, v[N] , nr ;

int caut_bin ( int S)
{
    int pas = 1<<L , r=0;
    while (pas != 0)
    {
        if( r+pas <= n && v[r+pas] <= S )
            {
                r+=pas;
            }
        pas/=2;
    }
    return r;
}

int main()
{
    int i , j ;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    sort(v+1, v+n+1);
    for(i=1; i<n; i++)
        for(j= i+1 ; j <=n ;j++)
           nr += caut_bin(v[i]+v[j]) - j;
    out<<nr;
    return 0;
}