Cod sursa(job #930528)

Utilizator AeroHHorea Stefan AeroH Data 27 martie 2013 18:13:55
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*fin=fopen("nrtri.in","r");
FILE*fout=fopen("nrtri.out","w");
int a,b,i,j,k,n,m,v[802],rasp;
struct cmp
{
bool operator()(const int &a,const int &b){return (a<b);}
};

int binary_search(int val)
{
int k, step;
for (step = 1; step <= n; step <<= 1);
    for (k =0; step; step >>= 1)
        if (k + step <= n && v[k + step] <= val)
    k += step;
return k-j;
}



int main()
{fscanf(fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
sort(v+1,v+n+1,cmp());
for (i=1;i<n-1;i++)for (j=i+1;j<=n-1;j++)
rasp+=binary_search(v[i]+v[j]);
fprintf(fout,"%d\n",rasp);
return 0;}