Cod sursa(job #326190)

Utilizator bugyBogdan Vlad bugy Data 24 iunie 2009 11:40:12
Problema Numarare triunghiuri Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
using namespace std;
#define dim 805
  
int v[dim];      
int quicksort(int inceput, int ultimul)      
{int i,j,temp,aux,m=0;      
  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; 	m++;}      
    if(i<=j)      
     {j=j-1;      
      i=i+1;      
     }      
   }while(i<=j);      
   if(inceput<j)    quicksort(inceput,j);      
   if(i<ultimul)    quicksort(i,ultimul);      
   //v[2]++;
}  


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

	int i,j,k,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;}