Cod sursa(job #1990604)

Utilizator PredunaTudorPreduna Tudor-Gabriel PredunaTudor Data 12 iunie 2017 18:34:56
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n, v[801], i, j, st, dr, mid, s;

int main()
{
    Tudor>>n;
    for(i = 0; i < n; i++)
        Tudor>>v[i];
    sort(v, v + n);
    for(i = 0; i < n - 2; i++){
        for(j = i + 1; j < n - 1; j++){
            st = j + 1;
            dr = n;
            while(st < dr){
                mid = (st + dr) / 2;
                if(v[mid] < v[i] + v[j])
                    st = mid + 1;
                if(v[mid] > v[i] + v[j])
                    dr = mid - 1;
                if(v[mid] == v[i] + v[j])
                    dr = mid;

            }
            s += dr - j;
        }
    }
    Preduna<<s;
}