Pagini recente » Cod sursa (job #949817) | Cod sursa (job #943452) | Cod sursa (job #515797) | Cod sursa (job #1725796) | Cod sursa (job #922516)
Cod sursa(job #922516)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
struct punct {
long long x,y;
};
punct p[1510];
int n,i,j,k;
long long nr;
bool cmp(punct a,punct b) {
if (a.x != b.x) return (a.x < b.x);
else return (a.y < b.y);
}
long long modul(long long a) {
if (a>0) return a;
else return -a;
}
int main() {
freopen("triang.in","r",stdin);
freopen("triang.out","w",stdout);
scanf("%d",&n);
const double rad = sqrt(3);
for (int i=1;i<=n;i++) {
double crtx,crty;
scanf("%lf %lf",&crtx,&crty);
p[i].x = 1000*crtx;
p[i].y = 1000*crty;
}
sort(p+1,p+n+1,cmp);
for (int i=1;i<n;i++) {
for (int j=i+1;j<=n;j++) {
long long x1 = p[i].x;
long long y1 = p[i].y;
long long x2 = p[j].x;
long long y2 = p[j].y;
long long xa = (x1+x2)/2;
long long xb = (y2-y1)*rad/2;
long long ya = (y1+y2)/2;
long long yb = (x2-x1)*rad/2;
punct pcrt;
pcrt.x = xa+xb;
pcrt.y = ya-yb;
if (binary_search(p+1,p+n+1,pcrt,cmp)) nr++;
pcrt.x = xa-xb;
pcrt.y = ya+yb;
if (binary_search(p+1,p+n+1,pcrt,cmp)) nr++;
}
}
printf("%lld",nr);
return 0;
}