Cod sursa(job #2275887)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 3 noiembrie 2018 18:45:31
Problema Numarare triunghiuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define len 801

using namespace std;

ifstream in("nrtri.in");
ofstream out("nrtri.out");
unsigned short N, rez, v[len], sol[4];

bool ebun(unsigned short k)
{
    return ((k < 3) ? (true) : (v[sol[1]] <= v[sol[2]] + v[sol[3]] && v[sol[2]] <= v[sol[1]] + v[sol[3]] && v[sol[3]] <= v[sol[1]] + v[sol[2]]));
}

void back(unsigned short k)
{
    for(unsigned short i = sol[k - 1] + 1; i <= N; ++i)
    {
        sol[k] = i;
        if(ebun(k))
        {
            if(k == 3)
                ++rez;
            else if(k < 3)
                back(k + 1);
        }
    }
}

int main()
{
    in >> N;
    for(unsigned short i = 1; i <= N; ++i)
        in >> v[i];
    back(1);
    out << rez;
    return 0;
}