Cod sursa(job #1928078)

Utilizator waren4Marius Radu waren4 Data 15 martie 2017 20:36:51
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("nrtri.in"); ofstream g("nrtri.out");
int n,a[1000],i,j,nr;

int cautbin(int x) {
    int st = j+1,dr = n,mij,last = j;
    while(st <= dr) {
        mij = st + (dr - st) / 2;
        if(x >= a[mij] && a[mij] + a[i] >= a[j]) {
            last = mij;
            st = mij + 1;
        }
        if(x < a[mij]) {
            dr = mij - 1;
        }
    }
    last -= j;
    return last;
}
int main() {
    f>>n;
    for(i = 1; i <= n; ++i) {
        f>>a[i];
    }
    sort(a+1,a+n+1);
    nr=0;
    for(i = 1; i <= n-2; ++i) {
        for(j = i+1; j <= n-1; ++j) {
            nr += cautbin(a[i] + a[j]);
        }
    }
    g<<nr;
    return 0;
}