Cod sursa(job #131012)

Utilizator katakunaCazacu Alexandru katakuna Data 2 februarie 2008 21:16:52
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
int s,a,b,p,nr,u,mij,n,i,v[801],ok,j;

int main(){
FILE *f=fopen("nrtri.in","r");
fscanf(f,"%d",&n);
  for(i=1;i<=n;i++){
  fscanf(f,"%d",&v[i]);
  }
fclose(f);

ok=1;

 while(ok){
 ok=0;
   for(i=1;i<n;i++){
     if(v[i]>v[i+1]){
     j=v[i];
     v[i]=v[i+1];
     v[i+1]=j;
     ok=1;
     }
   }

 }



   for(i=1;i<n-1;i++){

      for(j=i+1;j<n;j++){

       s=v[i]+v[j];

       p=j;
       u=n;

	 while(p<=u){
	 mij=(p+u)/2;

	   if(v[mij]<=s)p=mij+1;
	      else u=mij-1;
	 }


      if(u>j)nr+=u-j;


      }

   }

FILE *g=fopen("nrtri.out","w");
fprintf(g,"%d",nr);
fclose(g);

return 0;
}