Cod sursa(job #2333703)

Utilizator BungerNadejde George Bunger Data 1 februarie 2019 20:38:50
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("nrtri.in");
ofstream fout ("nrtri.out");
int n,v[805],ans,st,dr,mij,sum,poz;
void read()
{
    fin>>n;
    for(int i=1;i<=n;i++) fin>>v[i];
    sort(v+1,v+1+n);
}
void solve()
{
    for(int i=1;i<=n-2;i++)
        for(int j=i+1;j<=n-1;j++)
    {
        sum=v[i]+v[j];
        st=j+1;dr=n;poz=-1;
        while(st<=dr)
        {
            mij=st+(dr-st)/2;
            if(v[mij]>sum)
            {
                dr=mij-1;
            }
            else {
                poz=mij;
                st=mij+1;
            }
        }
        if(poz!=-1)  ans+=poz-j;
    }
    fout<<ans;
}
int main()
{
    read();
    solve();
    return 0;
}