Cod sursa(job #2531212)

Utilizator Rares31100Popa Rares Rares31100 Data 25 ianuarie 2020 21:36:54
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,a[801],nr;

int findBin(int poz,int val)
{
    for(int p=n-poz;p;p/=2)
        while(poz+p<=n && a[poz+p]<=val)
            poz+=p;

    return poz;
}

int main()
{
    in>>n;

    for(int i=1;i<=n;i++)
        in>>a[i];

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

    for(int i=1;i<=n-2;i++)
        for(int j=i+1;j<=n-1;j++)
        {
            int poz=findBin(j,a[i]+a[j]);

            if(poz==j)
                break;
            else
                nr+=poz-j;
        }

    out<<nr;
}