Cod sursa(job #401270)

Utilizator andreea1coolBobu Andreea andreea1cool Data 22 februarie 2010 18:26:35
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
int main()
{
	freopen("nrtri.in","r",stdin);
	freopen("nrtri.out","w",stdout);
	int n,k,i,j,c=0,p,poz,v[801],s,aux,z;
	scanf("%d",&n);
	for(k=1;k<=n;k++){
		scanf("%d",&v[k]);
	}
	s=0;
	while(s==0){
	for(i=1;i<n;i++){
	for(j=i+1;j<=n;j++){
	s=1;
		  if(v[i]>v[j]){
		  aux=v[i];
		  v[i]=v[j];
		  v[j]=aux;
		  s=0;
		  }
		  }
		  }
		  }
	for(z=1;z*2<=n;z*=2);

	for(i=1;i<=n-2;i++){
		for(j=i+1;j<n;j++){
		p=z;
			k=v[i]+v[j];
			for(poz=0;p;p=p/2){
				if(p+poz<=n){
					if(v[p+poz]<=k){
						poz=poz+p;
					}
				}
			}
			if(poz>j&&poz>i){
			c=c+poz-j;
               }
		}
		}
		printf("%d",c);
		return 0;
	}