Cod sursa(job #2020027)

Utilizator CiprianC111Constantinescu Ciprian CiprianC111 Data 9 septembrie 2017 12:07:01
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstdlib>

using namespace std;

vector <int>v;
vector <int>::iterator it, it1, poz;

int main()
{
    freopen("nrtri.in", "r", stdin);
    freopen("nrtri.out", "w", stdout);
    int n, x, nr = 0;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &x);
        v.push_back(x);
    }
    sort(v.begin(), v.end());
    for(it = v.begin(); it != v.end() - 2; it++)
    {
        //printf("it = %d\n", *it);
        for(it1 = it + 1; it1 != v.end() - 1; it1++)
        {
            //printf("it1 = %d\n", *it1);
            poz = upper_bound(it1 + 1, v.end(), (int)((*it) + (*it1)));
            nr += (int)(poz - it1 - 1);
            //printf("poz = %d\n", *poz);
        }
    }
    printf("%d", nr);
    return 0;
}