Cod sursa(job #2767276)

Utilizator dcovDarius Covaciu dcov Data 5 august 2021 14:50:34
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int main()
{
    int n,a[801],nr=0;
    f>>n;

    for(int i=0;i<n;i++)
        f>>a[i];

    int ok=1;

    while(ok)
    {
        ok=0;

        for(int i=0;i<n-1;i++)
        {
            if(a[i]>a[i+1])
            {
                int aux=a[i];
                a[i]=a[i+1];
                a[i+1]=aux;
                ok=1;
            }
        }
    }

    for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            int s=a[i]+a[j],lg=1;

            for(lg=1;lg<=n;lg<<=1);

            int k;

            for(k=j;lg!=0;lg>>=1)
            {
                if(k+lg<n && a[k+lg]<=s)
                    k+=lg;
            }

            nr+=k-j;
        }
    }

    g<<nr;

    return 0;
}