Cod sursa(job #107896)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 20 noiembrie 2007 20:44:38
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream.h>
#include <math.h>
ifstream fin("triang.in");
ofstream fout("triang.out");
double x[1601],y[1601],xh,yh,d,nr,l,n,xp,yp;
void citire()       {
fin>>n;
for (long i=0;i<n;i++)
   fin>>x[i]>>y[i];
}

void bule(){
int ok=1,p=n;
while (ok){
ok=0;
p--;
for (int i=0;i<p;i++)
   if (x[i]>x[i+1]){
     double aux=x[i];
     x[i]=x[i+1];
     x[i+1]=aux;
     aux=y[i];
     y[i]=y[i+1];
     y[i+1]=aux;
     ok=0;
     }
}
}

int da(int m){
   if (fabs(xp-x[m])<0.0001&&fabs(yp-y[m]))
      return 1;
return 0;
}

int caut_binar(int inc,int sf){
  if (inc>sf)
    return 0;
    int m=(inc+sf)/2;
    if (da(m))
      return 1;
    if (x[m]>=xp)
       return caut_binar(m+1,sf);
    if (x[m]<=xp)
       return caut_binar(inc,m-1);
    return 0;
  }

void afisare(){
for (int i=0;i<n;i++)
   for (int j=i+1;j<n;j++){
      l=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
      double rapx=0,rapy=0;
      if (x[i]-x[j]!=0)
      rapx=l/fabs(x[i]-x[j]);
      if (y[i]-y[j]!=0)
      rapy=l/fabs(y[i]-y[j]);
      xp=(x[i]+x[j])/2+((l*sqrt(3))/2)*rapy;
      yp=(y[i]+y[j])/2+((l*sqrt(3))/2)*rapx;
       if (caut_binar(0,n))
	  nr++; }
}

int main(){
citire();
afisare();
fout<<nr<<"\n";
fin.close();
fout.close();
return 0;
}