Cod sursa(job #3141245)

Utilizator Pacurari_SofiaPacurari Sofia Pacurari_Sofia Data 13 iulie 2023 13:30:04
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int main()
{
    int n, k=0;
    fin>>n;
    int st, dr, mij, sol=0;
    int v[n+1];
    for(int i=1; i<=n; i++)fin>>v[i];
    sort(v+1, v+1+n);
    for(int i=1; i<n-1; i++)
        for(int j=i+1; j<n; j++)
        {
            st=j+1; dr=n; sol=-1;
            while(st<=dr)
            {
                mij=(st+dr)/2;

                if(v[mij]<=v[i]+v[j] && sol<mij)sol=mij;
                if(v[mij]<=v[i]+v[j])
                    st=mij+1;
                else
                    dr=mij-1;
            }
            if(sol!=-1)k+=sol-j;
        }
    fout<<k;
    return 0;
}