Cod sursa(job #2301202)

Utilizator Tibi55Ionescu Tiberiu Tibi55 Data 12 decembrie 2018 18:58:10
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[802],n;
int cautbin(int x)
{
    int in=1,sf=n,poz=-1;
    while(in<=sf)
    {
        int mij=(in+sf)/2;
        if(x>=v[mij])
        {
            poz=mij;
            in=mij+1;
        }
        else sf=mij-1;
    }
    return poz;
}
int main()
{
    int i,j,h,nr=0;
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];
    sort(v+1,v+n+1);
    for(i=1; i<=n-2; i++)
    {
        int a=v[i];
        for(j=i+1; j<=n-1; j++)
        {
            int s=a+v[j];
            int poz = cautbin(s);
            nr += (poz - j);
        }
    }
    g<<nr;
    return 0;
}