Cod sursa(job #1522763)

Utilizator drobertDumitru Robert drobert Data 11 noiembrie 2015 22:51:40
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");

int n, x, top, bot, rez, ind1, ind2;
vector<int> v;

int main()
{
    int t;
    vector<int>::iterator i, j, k, lb, ub;
    f>>n;
    for (t = 1;t <= n;t++)
    {
        f>>x;
        v.push_back(x);
    }
    sort(v.begin(), v.end());
    for (i = v.begin();(i + 2) != v.end();i++)
        for (j = i + 1;(j + 1) != v.end();j++)
        {
            top = *j + *i;
            bot = *j - *i;
            lb = lower_bound(v.begin(), v.end(), bot);
            ub = upper_bound(v.begin(), v.end(), top);
            //g<<bot<<" "<<top<<'\n';
            //g<<ind1<<" "<<ind2<<'\n';
            rez += ub - max(lb,j);
            if (i >= lb && i < ub) rez--;
        }
    g<<rez;
}