Cod sursa(job #540596)

Utilizator Carl896Carl Adam Carl896 Data 24 februarie 2011 09:04:10
Problema Numarare triunghiuri Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include "stdio.h"

int v[800];

inline int IsTriangle(int a, int b, int c)
{
	if(a > (b + c) ||
		b > (a + c) ||
		c > (a + b))
	{
		return 0;	//not triangle
	}

	return 1; //is triangle
	
}

int main()
{
	FILE *f,*g;
	int n,m,opt,x;
	int i,j,k;
	int counter=0;
	int rez;
	int temp;
	f = fopen("nrtri.in","r");
	g = fopen("nrtri.out","w");
	
	fscanf(f,"%d ",&n);
	
	i=0;
	while(i<n)
	{
		fscanf(f,"%d ",&v[i]);	
		i++;
	}
	
	
	for(i=0;i<(n-1);i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(v[i]>v[j])
			{
				temp = v[i];
				v[i] = v[j];
				v[j] = temp;
			}
		}
	}

	
	for(i=0;i<(n-2);i++)
	{
		for(j=i+1;j<(n-1);j++)
		{
			for(k=j+1;k<n;k++)
			{
				if(IsTriangle(v[i],v[j],v[k]))
				{
					counter++;
				}
			}	
		}
	}
	fprintf(g,"%d",counter);

	fclose(f);
	fclose(g);

	return 0;
}