Pagini recente » Cod sursa (job #235126) | Cod sursa (job #3153198) | Cod sursa (job #2796038) | Cod sursa (job #2721159) | Cod sursa (job #2116605)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("patrate3.in");
ofstream fout("patrate3.out");
struct punct
{
int x, y;
} a[1002];
int n;
inline bool cmp(const punct v, const punct w)
{
if(v.x==w.x)
return v.y<w.y;
return v.x<w.x;
}
int bs(int xx, int yy)
{
int st=1, dr=n, mijl;
while(st<=dr)
{
mijl=st+(dr-st)/2;
if(a[mijl].x==xx && a[mijl].y==yy)
return mijl;
if(a[mijl].x>xx || (a[mijl].x==xx && a[mijl].y>yy)) dr=mijl-1;
else st=mijl+1;
}
return -1;
}
int verif(int p1, int p2)
{
int mijx=(a[p1].x+a[p2].x)/2, mijy=(a[p1].y+a[p2].y)/2;
int dx=(mijx-a[p1].x), dy=(mijy-a[p1].y);
if(y0<y1)
{
if(bs(mijx-dy,mijy+dx)==-1) return 0;
if(bs(mijx+dy,mijy-dx)==-1) return 0;
}
else
{
if(bs(mijx+dy,mijy+dx)==-1) return 0;
if(bs(mijx-dy,mijy-dx)==-1) return 0;
}
return 1;
}
int main()
{
int i, j, ct=0;
long double xxx, yyy;
fin>>n;
fin.get();
for(i=1; i<=n; i++)
{
fin>>xxx>>yyy;
a[i].x=(int)(xxx*100000);
a[i].y=(int)(yyy*100000);
}
sort(a+1,a+n+1,cmp);
for(i=1; i<=n-1; i++)
for(j=i+1; j<=n; j++)
if(verif(i,j)) ct++;
fout<<ct<<'\n';
return 0;
}