Cod sursa(job #1573162)

Utilizator MacoveiTiberiumacovei tiberiu MacoveiTiberiu Data 19 ianuarie 2016 14:29:41
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<algorithm>
using namespace std;
int v[823];
int main ()
{
    ifstream fin("nrtri.in");
    ofstream fout("nrtri.out");
    int n,i,counter=0,max1,max2;
    fin>>n;
    for(i=0;i<n;++i)
    {
        fin>>v[i];
    }
    sort(v,v+n);
    int s,e,raspuns,val;
    for(i=0;i<n-2;++i)
    {
        for(int j=i+1;j<n-1;++j)
        {
            s=j+1;
            e=n-1;
            val=v[i]+v[j];
            raspuns=0;
            while(s<=e)
            {
                int mijloc=(s+e)/2;
                if(val>=v[mijloc])
                {
                    raspuns=mijloc;
                    s=mijloc+1;
                }
                else
                {
                    e=mijloc-1;

                }
            }
            if(raspuns!=0) counter+=raspuns-j;
        }
    }
    fout<<counter;
}