Pagini recente » Cod sursa (job #2649988) | Cod sursa (job #108125)
Cod sursa(job #108125)
#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.001&&fabs(yp-y[m])<0.001)
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-1;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,xj=0,yk=0;
rapx=sqrt(3)/2*(x[j]-x[i]);
if (y[i]-y[j]!=0)
rapy=sqrt(3)/2*(y[j]-y[i]);
xj=(x[i]+x[j])/2;
yk=(y[i]+y[j])/2;
xp=xj+rapy;
//asta iese
yp=-rapx;
yp+=yk;
if (caut_binar(0,n+1))
nr++; }
}
int main(){
citire();
bule();
afisare();
fout<<nr<<"\n";
fin.close();
fout.close();
return 0;
}