Cod sursa(job #1116844)

Utilizator gapdanPopescu George gapdan Data 22 februarie 2014 20:55:58
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int a[1001],i,n,j,nr;
int main()
{
    freopen("nrtri.in","r",stdin);
    freopen("nrtri.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;++i) scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    a[++n]=30005;
    for (i=1;i<=n-3;++i)
        {
            int poz=1;
        for (j=i+1;j<n-1;++j)
        {
            int sum=a[i]+a[j];
            int *p=upper_bound(a+poz,a+n+1,sum);
            if (p-a!=poz)
            {
                poz=p-a;
                nr=nr+(p-a-2-i);
            }
        }
        }
    printf("%d\n",nr);
    return 0;
}