Cod sursa(job #358184)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 22 octombrie 2009 02:33:25
Problema Numarare triunghiuri Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdlib.h>
#include <stdio.h>
#define N 810
int sir[N];
int comp(const void *a,const void *b)
{return (*(int*)a- *(int*)b);
}


int main()
{FILE *fin,*fout;
 int i,j,l,k,n,sum,dif,s,y;
 fin=fopen("nrtri.in","r");
 fout=fopen("nrtri.out","w");
 if(!(fin&&fout))
  return 0;
 printf("\n");
 fscanf(fin,"%d",&n);
 for (i=0;i<n;i++)
 {fscanf(fin,"%d",&sir[i]);
 }
 qsort(sir,n,sizeof(int),comp);
 for (i=0,s=0;i<n;i++)
 {for (j=i+1;j<n;j++)
  {y=0;
   sum=sir[i]+sir[j];
   dif=abs(sir[i]-sir[j]);
   for (l=0;l<n&&dif>sir[l];l++){}
   for (k=n-1;k>=0&&sum<sir[k];k--){}
   if(l<=i&&i<=k)y--;
   if(l<=j&&j<=k)y--;
   y+=k-l+1;
   printf("%d %d %d %d %d\n",i,j,l,k,y);
   s+=y;
  }
 }
 fprintf(fout,"%d\n",s/3);
 fclose(fout);
 
 
 return 0;
}