Cod sursa(job #1213663)

Utilizator azkabancont-vechi azkaban Data 28 iulie 2014 18:35:37
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 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 limit)
{
 int step,i;
 for (step=1;step<limit;step<<=1);
 for (i=0;step>0;step>>=1)
     if (i+step<=limit && A[i+step]<x) i+=step;
                             else
     if (i+step<=limit && A[i+step]==x) return i;
 return -1;
}

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