Cod sursa(job #326596)

Utilizator bugyBogdan Vlad bugy Data 25 iunie 2009 16:57:35
Problema Numarare triunghiuri Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<stdio.h>
using namespace std;
#define dim 802
  
int v[dim];      
int quicksort (int inceput, int ultimul)      
{
	int i,j,temp,aux;      
	  i=inceput;      
	  j=ultimul;      
	  temp=v[(i+j)/2];      
 do     
   {
	while(v[i]<temp)      i=i+1;      
    while(v[j]>temp)      j=j-1;      
    if(i<j)      
     {aux=v[i]; v[i]=v[j]; v[j]=aux; }      
    if(i<=j)      
		 {j=j-1;      
		  i=i+1;}      
   }
   while(i<=j);      
   if(inceput<j)    quicksort(inceput,j);      
   if(i<ultimul)    quicksort(i,ultimul);      
  } 


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

	int i=0,j=0,k=0,n,tri=0;
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	quicksort(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( v[k] > v[j] +v[i] )
					break;				
					tri++;
					}
				
							
	fprintf(g,"%d\n",tri);
return 0;}