Cod sursa(job #2226519)

Utilizator MoldooooooooMoldoveanu Stefan Moldoooooooo Data 30 iulie 2018 12:00:10
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int N, List[805], i, S;
int Binary(int st, int dr, int Find){
    int inplus=st-1, mij;
    while(st<dr){
        mij=(st+dr)/2;
        if(Find==List[mij])return mij-inplus;
        if(Find>List[mij]) st=mij+1;
        else dr=mij-1;
    }
    if(Find<List[st])inplus++;
    return st-inplus;
}
int main()
{
    freopen("nrtri.in", "r", stdin);
    freopen("nrtri.out", "w", stdout);
    scanf("%d", &N);
    for(i=1; i<=N; i++) scanf("%d", &List[i]);
    sort(List+1, List+N+1);
    for(i=2; i<=N-1; i++)S+=Binary(i+1, N, List[i]+List[i-1]);
    printf("%d", S);
    return 0;
}