Pagini recente » Cod sursa (job #2539862) | Cod sursa (job #479590) | Cod sursa (job #2559822) | Cod sursa (job #1931023) | Cod sursa (job #2611490)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int cnt[300001], aux;
vector<int> v;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int sum = 0;
int triangles(int l1, int l2, int border)
{
int moduri = 1;
bool found = false;
moduri *= cnt[l1];
moduri *= cnt[l2];
for (int i = l2 + 1; i <= border; i++)
if (cnt[i] > 0)
{
moduri *= cnt[i];
found = true;
}
return (found == true) ? moduri : 0;
}
int main()
{
int nr;
f >> nr;
for (int i = 0; i < nr; i++)
{
f >> aux;
cnt[aux]++;
v.push_back(aux);
}
sort(v.begin(), v.end());
for (int i = 0; i < nr - 2; i++)
{
for (int j = i + 1; j < nr - 1; j++)
{
sum += triangles(v[i], v[j], v[i] + v[j]);
}
}
g << sum;
}