Cod sursa(job #2075676)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 25 noiembrie 2017 16:36:15
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAXN 801

using namespace std;

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

int n,v[MAXN],s;

void cit(){
    in>>n;
    for(int i = 1 ; i <= n; i ++)
        in>>v[i];
}
void cautbin(){
    int pas = 1;
    int r;
    sort(v+1,v+n+1);
    for(int i = 1; i <= n - 2; i ++){
        for(int j = i+1; j <= n - 1; j ++){
            r = j;
            pas = 1 << 9;

            while(pas){
                if(r + pas <= n && v[r+pas] <= v[i] + v[j])
                    r += pas;
                pas /= 2;
            }
            s += r - j;
        }
    }
    out<<s;
}

int main()
{
    cit();
    cautbin();

    return 0;
}