Mai intai trebuie sa te autentifici.

Cod sursa(job #1525000)

Utilizator HorridSaracin Mihnea Horrid Data 14 noiembrie 2015 17:14:27
Problema Numarare triunghiuri Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;



/*void quick_sort (int *a, int n) {
    int i, j, p, t;
    if (n < 2)
        return;
    p = a[n / 2];
    for (i = 0, j = n - 1;; i++, j--) {
        while (a[i] < p)
            i++;
        while (p < a[j])
            j--;
        if (i >= j)
            break;
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    quick_sort(a, i);
    quick_sort(a + i, n - i);
}*/
void qsort1(int *a,int st,int dr)
{
int i=st,j=dr,p,aux;
    p=a[(i+j)/2];
    while(i<=j){
        while (a[i] < p)
            i++;
        while (p < a[j])
            j--;
    if(i<j){
       aux = a[i];
        a[i] = a[j];
        a[j] = aux;

        }
        i++;
        j--;
}
if(st<j)
qsort1(a,st,j);
if(dr>i)
qsort1(a,i,dr);



}

int main()
{
    int a[900],i,j,n,nr=0,s=0,k=0,z=0,ok;

    f=fopen("nrtri.in","r");
    g=fopen("nrtri.out","w+");
    fscanf(f,"%d",&n);
    for(i=0;i<n;i++)
        fscanf(f,"%d",&a[i]);
   // for(i=0;i<n;i++)
     //   printf("%d ",a[i]);

    qsort1(a,0,n-1);
   // printf("\n");
 //     for(i=0;i<n;i+fclose(f);+)
  //      printf("%d ",a[i]);

   for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
   {
       ok=1;
       s=a[i]+a[j];
       if   (z>0) k=z+1;
            else k=j+1;
       for(k=j+1;k<n&&ok;k++)
       if (s>=a[k])  nr++;


    }





    fprintf(g,"%d",nr);
    fclose(f);
    fclose(g);






    return 0;
}