Cod sursa(job #325707)

Utilizator iulia609fara nume iulia609 Data 21 iunie 2009 23:20:15
Problema Numarare triunghiuri Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#define dim 801
using namespace std;

int n, a[dim];

void qsort(int inc,int sf)
    {int i,j;
	 int temp,aux;
	 i=inc,j=sf;
	 temp=a[(i+j)>>1];
	 
	 do
	   {while(a[i]<temp)i++;
	    while(a[j]>temp)j--;
	    if(i<j) aux=a[i],a[i]=a[j],a[j]=aux;
		if(i<=j)j--,i++;
	    } while(i<=j);
	 if(inc<j)qsort(inc,j);
	 if(i<sf)qsort(i,sf);
     }

int main()
{ int i,j,k,cont = 0;
	
	FILE*f = fopen("nrtri.in","r");
	FILE*g = fopen("nrtri.out","w");
	
	fscanf(f, "%d",&n);
	for(i = 1; i <= n; i++)
		fscanf(f,"%d", &a[i]);
	
	qsort(1,n);
	
	for(i = 1; i <= n-2; i++)
		for(j = i+1; j <= n-1; j++)
			for(k = j+1; k <= n; k++)
				if((a[i] + a[j] >= a[k])
				  &&(a[j] + a[k] >= a[i])
				  &&(a[i] + a[k] >= a[j])) cont++;
					else if(a[i] + a[j] < a[k]) break;
				
	fprintf(g,"%d\n", cont);	
	
	fclose(f);
	fclose(g);
	return 0;
}