Cod sursa(job #2979650)

Utilizator SSKMFSS KMF SSKMF Data 15 februarie 2023 18:01:55
Problema Numarare triunghiuri Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
using namespace std;

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

int main ()
{
    int lungime , sir[800];
    cin >> lungime;

    for (int indice = 0 ; indice < lungime ; indice++)
        cin >> sir[indice];

    for (int indice_1 = 0 ; indice_1 < lungime - 1 ; indice_1++)
        for (int indice_2 = indice_1 + 1 ; indice_2 < lungime ; indice_2++)
            if (sir[indice_1] > sir[indice_2])
                swap(sir[indice_1] , sir[indice_2]);

    int modalitati = 0;
    for (int indice_1 = 0 ; indice_1 < lungime - 2 ; indice_1++)
        for (int indice_2 = indice_1 + 1 ; indice_2 < lungime - 1 ; indice_2++)
        {
            int stanga = indice_2 + 1 , dreapta = lungime , pozitie = indice_2;
            while (stanga <= dreapta)
            {
                int mijloc = (stanga + dreapta) / 2;

                if (sir[mijloc] > sir[indice_1] + sir[indice_2])
                    dreapta = mijloc - 1;
                else
                    stanga = mijloc + 1 , pozitie = mijloc;
            }

            modalitati += pozitie - indice_2;
        }

    cout << modalitati;
    cout.close(); cin.close();
    return 0;
}