Cod sursa(job #1573194)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 19 ianuarie 2016 14:43:47
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <algorithm>
using namespace std;
int v[870],x;
int main()
{
    ifstream fin ("nrtri.in");
    ofstream fout ("nrtri.out");
    int n;
    fin>>n;
    int a,b,c,s,counte=0,e,val,raspuns;
    for (int i=0;i<n;++i)
    {
        fin>>v[i];
    }
    sort (v,v+n);
    for (int i=0;i<n-2;++i)
    {
        a=v[i];
        for (int j=i+1;j<n-1;++j)
        {
            raspuns=0;
            b=v[j];
            s=j+1;
            e=n-1;
            val=v[i]+v[j];
            while (s<=e)
            {
                int mijloc=(s+e)/2;
                if (val>=v[mijloc])
                {
                    raspuns=mijloc;
                    s=mijloc+1;
                }
                else
                {
                    e=mijloc-1;
                }
            }
            if (raspuns!=0){counte+=raspuns-j;}
        }
    }
    fout<<counte;
}