Cod sursa(job #2257555)

Utilizator JigsawKillerPetrescu Alexandru JigsawKiller Data 10 octombrie 2018 10:32:58
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
#define MAX 801

using namespace std;
int v[MAX];
int main()
{
    int n, i, j, st, dr, mij, contor = 0;

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

    fin >> n;

    for(i = 1; i <= n; i++)fin >> v[i];
    sort(v + 1, v + 1 + n);

    for(i = 1; i <= n - 2; i++)
    {
        for(j = i + 1; j <= n - 1; j++)
        {
            st = j + 1;
            dr = n;
            while(st <= dr)
            {
                mij = (st + dr) / 2;

                if(v[i] + v[j] >= v[mij])
                {
                    contor++;
                    st = mij + 1;
                }
                else
                    dr = mij - 1;
            }
        }
    }

    fout << contor;

    fin.close();
    fout.close();

    return 0;
}