Cod sursa(job #1704010)

Utilizator sabinnituSabin Nitu sabinnitu Data 17 mai 2016 21:44:14
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>

using namespace std;

const int L = 9;

int main()
{
    ifstream in("nrtri.in");
    ofstream out("nrtri.out");

    int v[1001], n, i, j, k, pas, rez = 0;

    in >> n;
    for(i=1; i<=n; i++) {
        in >> v[i];
    }
    sort(v + 1, v + n + 1);
    for (i = 1; i < n - 1; i++)
        for (j = i + 1; j < n; j++)
        {
            k = 0;
            pas = 1 << L;
            while (pas != 0)
            {
                if (k + pas <= n && v[k + pas] <= v[i] + v[j])
                    k += pas;
                pas /= 2;
            }
            if (k - j > 0)
                rez += k - j;
        }


    out << rez;

    return 0;
}