Pagini recente » Cod sursa (job #1976162) | Cod sursa (job #3000776) | Cod sursa (job #459523) | Cod sursa (job #2742900) | Cod sursa (job #108142)
Cod sursa(job #108142)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("triang.in");
ofstream fout("triang.out");
double x[1601],y[1601],xh,yh,d,nr,l,xp,yp;
int n;
void citire() {
fin>>n;
for (int 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);
return caut_binar(inc,m-1);
}
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(j,n))
nr++;
else
{xp=xj-rapy;
yp=rapx;
yp+=yk;
if (caut_binar(j,n))
nr++;
}}
}
int main(){
citire();
bule();
afisare();
fout<<nr<<"\n";
fin.close();
fout.close();
return 0;
}