Cod sursa(job #1790311)

Utilizator mdiannnaMarusic Diana mdiannna Data 27 octombrie 2016 23:46:25
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 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(st == dr && A[m] <= val){
        cnt++;
        return;
    }
   // if(A[m] > val)
    //    cautBin(val, st, m-1);
    else
        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;

//    cout << "n=" << n << endl;

	fclose(stdin);
	fclose(stdout);

    return 0;
}