Cod sursa(job #2694307)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 8 ianuarie 2021 18:50:50
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>

using namespace std;

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

int laturi[805];

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

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++)
        {
            maximlat=laturi[i]+laturi[j];
            dr=n;
            st=j+1;

            if(laturi[n]>=maximlat)
            {
                while(st<=dr)
                {
                    mij=(st+dr+1)/2;

                    if(laturi[mij]<=maximlat)
                    {

                        st=dr+1;
                        pozitie=mij;
                    }
                    else
                    {
                        dr=mij-1;
                    }
                }

                nrtri+=pozitie-j;

            }

        }
    }
    g<<nrtri;
}