Cod sursa(job #327347)

Utilizator bugyBogdan Vlad bugy Data 28 iunie 2009 15:57:21
Problema Numarare triunghiuri Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include<stdio.h>   
using namespace std;   
#define dim 806   
     
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,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);   
	fclose(f);
	fclose(g);
return 0;}