Pagini recente » Cod sursa (job #2187845) | Cod sursa (job #1751383) | Cod sursa (job #2166263) | Cod sursa (job #1724352) | Cod sursa (job #1777369)
#include <bits/stdc++.h>
#define eps 1e-5
using namespace std;
int p1,p2,i,n,j,sol;
double x0,y00,x1,y11,x2,y2,x3,y3,mx,my,dx,dy;
pair<double,double>v[1010];
int cautbin(double val)
{
int in=1,sf=n;
while(in<=sf)
{
int mid=(in+sf)/2;
if(abs(v[mid].first-val)<=eps)return mid;
else if(v[mid].first-val>eps)sf=mid-1;
else in=mid+1;
}
return 0;
}
int main()
{
freopen("patrate3.in","r",stdin);
freopen("patrate3.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; ++i)
scanf("%lf%lf",&v[i].first,&v[i].second);
sort(v+1,v+n+1);
for(i=1; i<=n; ++i)
{
x0=v[i].first;
y00=v[i].second;
for(j=i+1; j<=n; ++j)
if(v[j].first-v[i].first>eps&&v[j].second-v[i].second>=eps)
{
x1=v[j].first;
y11=v[j].second;
mx=1.0*(x0+x1)/2;
my=1.0*(y00+y11)/2;
dx=abs(mx-x0);
dy=abs(my-y00);
x2=mx+dy;
x3=mx-dy;
y2=my-dx;
y3=my+dx;
p1=cautbin(x2);
p2=cautbin(x3);
if(p1!=0&&p2!=0)
if(abs(y2-v[p1].second)<=eps&&abs(y3-v[p2].second)<=eps)++sol;
}
}
printf("%d\n",sol);
return 0;
}