Cod sursa(job #2279770)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 9 noiembrie 2018 22:36:15
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<algorithm>

using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");

int n, i, a[804], j, st, dr, sol, mij;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
    }
    sort(a+1,a+1+n);
    int cnt=0;
    for(i=1;i<=n-2;i++)
    {
        for(j=i+1;j<=n-1;j++)
        {
            st=j+1;
            dr=n;
            sol=-1;
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(a[i]+a[j]>=a[mij])
                {
                    sol=mij;
                    st=mij+1;
                }
                else
                {
                    dr=mij-1;
                }
            }
            if(sol!=-1)
            {
                cnt=cnt+sol-j;
            }
        }
    }
    fout<<cnt;
    fin.close();
    fout.close();
    return 0;
}