Cod sursa(job #1411711)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 31 martie 2015 21:40:25
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n, i, j, nr, st, m, dr, sl;
int a[801];

int cmp(int x, int y)
{   return x < y;   }

int main()
{
    f >> n;
    for (i = 1; i <= n; i++)
        f >> a[i];

    sort(a+1, a+n+1, cmp);

    for (i = 1; i < n-2; i++)
        for (j = i+2; j <= n; j++)
        {
            st = i+1, dr = j-1;
            while (st <= dr)
            {
                m = (st+dr)/2;
                if (a[j] - a[i] >= a[m])
                    st = m+1, sl = m;
                else
                    dr = m-1;
            }
            nr += (j - sl);
        }
    g << nr;
    return 0;
}