Pagini recente » Cod sursa (job #1973365) | Cod sursa (job #1024476) | Cod sursa (job #1500756) | Cod sursa (job #733218) | Cod sursa (job #2577242)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int n, total = 0, comb = 3;
vector<int> lgs;
vector<int> sol(3);
bool isTriangle(int l1, int l2, int l3)
{
double semiP = (l1 + l2 + l3) / 2;
if (semiP < l1 || semiP < l2 || semiP < l3)
{
return false;
}
return true;
}
void constructTriangles(int latNr, int triedUpon)
{
if (latNr == comb)
{
if (isTriangle(sol[0], sol[1], sol[2]))
{
total++;
}
return;
}
for (int i = triedUpon + 1; i < n - (comb - latNr - 1); i++)
{
sol[latNr] = lgs[i];
constructTriangles(latNr + 1, i);
}
}
int main()
{
int aux;
in >> n;
for (int i = 0; i < n; i++)
{
in >> aux;
lgs.push_back(aux);
}
constructTriangles(0, -1);
out << total;
return 0;
}