Cod sursa(job #3134849)

Utilizator Traian_7109Traian Mihai Danciu Traian_7109 Data 31 mai 2023 15:37:37
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const short NMAX = 800;
int v[NMAX+5];
short n;

short find(const short &number)
{
    short left = 1, right = n, solution = 0;

    while (left <= right) {
        short middle = (left+right)/2;

        if (v[middle] > number) right = middle-1;
        else left = middle+1, solution = middle;
    }

    return solution;
}

int main()
{
    ios_base :: sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    int cnt = 0;
    fin>>n;

    for (short i = 1; i <= n; i++) fin>>v[i];

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

    for (short i = 1; i+2 <= n; i++)
        for (short j = i+1; j+1 <= n; j++)
            cnt += find(v[i]+v[j])-j;

    fout<<cnt;
    return 0;
}