Cod sursa(job #1936117)

Utilizator ContDeRacistAliniateEBlat ContDeRacist Data 22 martie 2017 20:50:48
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
//#include <iostream>
#include <cmath>
#include <algorithm>
#include <fstream>

using namespace std;

ifstream cin("nrtri.in");
ofstream cout("nrtri.out");

int v[810],n;

int cautb(int x)
{
    int pas=1<<9,r=-1;
    while(pas!=0){
        if(r + pas < n && v[r+pas] <= x){
            r+=pas;
        }
        pas/=2;
    }
    return r;
}


int main()
{
    int z,cnt=0;
    cin>>n;
    for(int i=0 ; i<n ; ++i){
        cin>>v[i];
    }
    sort(v,v+n);
    for(int i=0 ; i<n-2 ; ++i){
        for(int j=i+1 ; j<n-1 ; ++j){
                z=cautb(v[i] + v[j]);
                if(z>j){
                    cnt+=z-j;
                }
        }
    }
    cout<<cnt;
    return 0;
}