Cod sursa(job #2084242)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 8 decembrie 2017 20:23:17
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int n, v[803];
unsigned long long ct;
unsigned long long cauta_bin(int val, int st, int dr, int starting_point)
{
    int mijl;
    while(st<=dr)
    {
        mijl=st+(dr-st)/2;
        if(v[mijl]<=val)
            st=mijl+1;
        else
            dr=mijl-1;
    }
    return (unsigned long long)st-starting_point;
}
int main()
{
    int i, j;
    fin>>n;
    for(i=1; i<=n; i++) fin>>v[i];
    sort(v+1,v+n+1);
    for(i=1; i<=n-1; i++)
        for(j=i+1; j<=n; j++)
            ct+=cauta_bin(v[i]+v[j],j+1,n,j+1);
    fout<<ct<<'\n';
    return 0;
}