Cod sursa(job #1790283)

Utilizator mdiannnaMarusic Diana mdiannna Data 27 octombrie 2016 23:02:28
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <stdio.h>
#include <algorithm>

using namespace std;
int n;
int A[1000];
int cnt = 0;

void citire(){
    cin >> n;
    for(int i=0; i<n; i++)
        cin >> A[i];

}

void cautBin(int val, int st, int dr){
    int m = st + (dr-st)/2;

  //  cout << "A[" << m << "]=  " << A[m] << "   val= " << val << endl;
    if(st>dr)
        return;
    if(A[m] > val)
        return cautBin(val, st, m-1);
    if(A[m] <= val){
        cnt++;
        cautBin(val, st, m-1);
        cautBin(val, m+1, dr);
    }



}

void alg(){
    for(int i=0; i<n-1; i++){
        cautBin(A[i]+A[i+1], i+2, n-1);
    }
}

int main(){
    freopen("nrtri.in", "r", stdin);
    freopen("nrtri.out", "w", stdout);

    citire();
    sort(A, A+n);
    alg();

    cout << cnt;


    return 0;
}