Cod sursa(job #1213662)

Utilizator azkabancont-vechi azkaban Data 28 iulie 2014 18:30:06
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,A[30013],i,j,sol(0);

void openIOFiles()
{
  freopen("nrtri.in","r",stdin);
  freopen("nrtri.out","w",stdout);
}

void readIFILE()
{
 scanf("%d",&n);
 for (int i=1;i<=n;++i) scanf("%d",&A[i]);
}
 
int binary(int x,int n)
{
 int step,i;
 for (step=1;step<n;step<<=1);
 for (i=0;step>0;step>>=1)
     if (i+step<=n && A[i+step]<x) i+=step;
 return i;
}

int main()
{
 openIOFiles();
 readIFILE(); 
 sort(A+1,A+n+1);
 for (i=n;i>=3;--i)
         for (j=i-1;j>=2;--j) 
              if (A[binary(A[i]-A[j],j-1)+1]=A[i]-A[j]) ++sol;
 printf("%d",sol);  
return 0;
}