Cod sursa(job #2303351)

Utilizator SirbuSirbu Ioan Sirbu Data 16 decembrie 2018 03:31:07
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int v[801];

int cautare(int x,int poz1,int poz2)
{

    int stg=poz1,dr=poz2,mij;
    while(stg<=dr)

    {
        mij=(stg+dr)/2;
        if(v[mij]>x) dr=mij-1;
        else stg=mij+1;
    }

    return dr;
}

int main()

{

    int n,rez=0,cb;

    fin>>n;

    for(int i=1;i<=n;i++)

        fin>>v[i];

    sort(v+1,v+n+1);

    for(int i=1;i<=n-2;i++)

        for(int j=i+1;j<=n-1;j++)

        {

            cb=cautare(v[i]+v[j],j+1,n);

            if(cb>j)

                rez+=cb-j;

        }

        fout<<rez;

    return 0;

}