Cod sursa(job #263326)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 20 februarie 2009 10:32:31
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<stdlib.h>
#define N 801
struct milk{int a;}v[N];
int compar(const void*p,const void*q)
{
	milk pp=*(milk*)p,qq=*(milk*)q;
	if (pp.a>qq.a) return 1;
	if (pp.a<qq.a) return -1;
	return 0;
}
int caut (int x, int p,int n)
{
	int u=n,m=(p+u)/2;
	while (u!=p)
	{
		m=(u+p)/2;
		if (v[m].a>=x)
		   u=m;
		else
		   p=m+1;
	}
	if (v[p].a<x)
	return p-1;
	return p;
}
void citire()
{
	int n,num=0;
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	scanf("%d",&n);
	for (int i=1; i<=n; ++i) scanf("%d",&v[i].a);
	qsort(v+1,n,sizeof(v[0]),compar);
//	for (i=1; i<=n; ++i) printf("%d ",v[i]);
	for (int i=1; i<n; ++i)
	    for (int j=i+1; j<=n; ++j)
	    {
		int s=v[i].a+v[j].a;
		if (s<v[n].a)     ++num;
		//printf("%d%d%d\n",i,j,caut(s,i,n));
	    }
        printf("%d",num);
}
int main()
{
	citire();
	return 0;
}