Cod sursa(job #2611490)

Utilizator mehanixCiausu Nicoleta mehanix Data 6 mai 2020 22:54:36
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#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;
}