Cod sursa(job #311575)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 3 mai 2009 18:36:54
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

long int n,i,j,v[1000],st,dr,mj,rez;

int main()
{
	f=fopen("nrtri.in","r");
	s=fopen("nrtri.out","w");

    fscanf(f,"%ld\n",&n);
	
	for(i=0;i<n;i++)
		fscanf(f,"%ld ",&v[i]);
	
	sort(v,v+n);
	
	for(i=0;i<=n/2;i++)
	{
		for(j=i+1;j<n;j++)
		{
				st=j+1;
				dr=n-1;
				while(st<=dr)
				{
					mj=(st+dr)/2;
					
					if((v[i]+v[j]>v[mj]&&v[i]+v[mj]>v[j]&&v[j]+v[mj]>v[i])||v[i]+v[j]==v[mj]||v[i]+v[mj]==v[j]||v[j]+v[mj]==v[i])
						rez++;
					else
					{
						if(v[i]+v[j]<v[mj])
							st=mj+1;
						else
							dr=mj-1;
	
					}	
					
				}	
		}	
	}		
	
	fprintf(s,"%ld",rez);
	
	fclose(s);
	
	return 0;
}