Cod sursa(job #2693302)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 5 ianuarie 2021 14:23:05
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;

ifstream f("nrtri.in");
ofstream g("nrtri.out");

int laturi[805];

int nrtri,i,x;
int n,ok,minimlat,j,st,dr,mij;

int main()
{
    f>>n;

    for(i=1;i<=n;i++)
    {
        f>>laturi[i];
    }

    while(ok==0)
    {
        ok=1;

        for(i=2;i<=n;i++)
        {
            if(laturi[i]<laturi[i-1])
            {
                ok=0;
                x=laturi[i];
                laturi[i]=laturi[i-1];
                laturi[i-1]=x;
            }
        }
    }

    for(i=1;i<=n-2;i++)
    {
        for(j=i+1;j<=n-1;j++)
        {
            minimlat=laturi[i]+laturi[j];
            dr=n;
            st=j+1;

            if(laturi[n]>=minimlat && i!=j)
            {
                while(st<=dr)
                {
                    mij=(st+dr+1)/2;

                    if(laturi[mij]>minimlat)
                    {

                        dr=mij-1;
                    }
                    else
                    {
                        st=mij+1;
                    }
                }
                nrtri+=dr-j;
            }

        }
    }
    g<<nrtri;
}