Cod sursa(job #1045615)

Utilizator BaTDucKMocanu George BaTDucK Data 1 decembrie 2013 20:03:53
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[805],nr,n;
int caut(int j, int a)
{   int i=0,mid;
    while(i<j)
    {
        mid=i+(j-i)/2;
        if(v[mid]<a) i=mid+1;
        else j=mid;
    }
    mid=(i+j)/2;
    if(v[mid]<a) mid++;
    return mid;
}
int main()
{   int i,j,a;
    freopen("nrtri.in","r",stdin);
    scanf("%d",&n);
    for(i=0;i<n;scanf("%d",&v[i]), ++i);
    fclose(stdin);
    sort(v,v+n);
    for(i=n-1;i>1;--i)
    {
        a=v[i]-v[i-1];
        if(a) nr+=(i-1)-caut(i-2,a);
    }
    freopen("nrtri.out","w",stdout);
    printf("%d",nr);
    fclose(stdout);
    return 0;
}