Cod sursa(job #1735914)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 31 iulie 2016 17:02:49
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int v[805];
int n;
int main()
{
    in >> n;
    for(int i = 1; i <= n; i++)
        in >> v[i];
    sort(v + 1, v + n + 1);
    int nr = 0;
    for(int i = 1; i <= n; i ++)
    {
        for(int j = i + 1; j <= n; j ++)
        {
            int st = j + 1, dr = n, r = 0;
            while(st <= dr)
            {
                int mij = (st + dr) / 2;
                if(v[mij] <= v[i] + v[j])
                {
                    st = mij + 1;
                    r = mij;
                }
                else
                    dr = mij - 1;
            }
            if(r != 0)
                nr += r - j;
        }
    }
    out<<nr;
    return 0;
}