Cod sursa(job #1525061)

Utilizator HorridSaracin Mihnea Horrid Data 14 noiembrie 2015 18:18:30
Problema Numarare triunghiuri Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.26 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);
}

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]);

    quick_sort(a,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)  k=j;
        else k=z;
      while(k<n){
        k++;
        if (s>a[k])   nr++;
            else if(s==a[k])
            {
                nr++;
                z=k;
                break;
            }
            else break;
        }

   }





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






    return 0;
}