Cod sursa(job #3264178)

Utilizator AndreiCod123Sitaru Mircea AndreiCod123 Data 18 decembrie 2024 19:26:35
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<bits/stdc++.h>
using namespace std;

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

int v[805];

int cb(int st, int dr, int suma)
{
    int mij, z = 0;
    while(st <= dr)
    {
        mij = (st+dr)/2;
        if(v[mij] <= suma)
        {
            z = mij;
            st = mij+1;
        }
        else
            dr = mij-1;
    }
    return z;
}

int main()
{
    int n, i, j, poz = 0, cntr = 0;

    fin>> n;

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

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

    for(i = 1; i <= n-2; i++)
    {
        for(j = i+1; j <= n-1; j++)
        {
            poz = cb(j+1, n, v[i]+v[j]);
            if(poz > 0)
                cntr += poz - j;
        }
    }
    fout<< cntr;
    fin.close();
    fout.close();
    return 0;
}