Cod sursa(job #805156)

Utilizator avaspataruAva Spataru avaspataru Data 30 octombrie 2012 22:23:26
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int cate,i,j,pas,ii,jj,k,n,v[1005];
int main()
{

    freopen("nrtri.in","r",stdin);
    freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
    scanf("%d",&v[i]);
sort(v+1,v+n+1);
cate=0;
for(i=1;i<=n-2;i++)
    for(j=i+1;j<=n-1;j++)
        {
       /* pas=1<<29;
        ii=0;
        while(pas!=0)
            {if(ii+pas<=n&&v[ii+pas]<=(v[i]+v[j]))
                ii+=pas;
            pas/=2;
            }
        pas=1<<29;
        jj=0;
        while(pas!=0)
            {if(jj+pas<=n&&v[jj+pas]<(v[i]+v[j]))
                jj+=pas;
            pas/=2;
            }*/
        for(k=j+1/*jj-1*/;k<=n/*ii+1*/;k++)
            if(v[k]+v[i]>v[j]&&v[j]+v[k]>v[i]&&v[i]+v[j]>v[k]&&i!=jj&&j!=ii&&j!=jj&&i!=ii)
                cate++;
        }
printf("%d",cate);
return 0;
}