Pagini recente » Cod sursa (job #1677671) | Cod sursa (job #1751816) | Cod sursa (job #3160287) | Cod sursa (job #189268) | Cod sursa (job #107896)
Cod sursa(job #107896)
#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;
}