Pagini recente » Cod sursa (job #3157731) | Cod sursa (job #3274979) | Statistici Cristina (cristina-cri) | Cod sursa (job #3286558) | Cod sursa (job #1149353)
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
#define eps 1.e-14
struct punct{
float x,y;
};
int cnt=0,n;
punct v[1001];
bool comp(punct a,punct b){
if(fabs(a.x-b.x)>=eps)
return a.x-b.x<eps;
return a.y-b.y<eps;
}
void cauta(punct a,punct b){
punct c;
punct d;
float delta;
delta=fabs( (b.x-a.x)-fabs((b.y-a.y)) / 2 );
c.x=b.x-delta;
d.x=a.x+delta;
if(a.y>b.y)
{
c.y=a.y-delta;
d.y=b.y+delta;
}
else
{
c.y=b.y-delta;
d.y=a.y+delta;
}
int st=1,dr=n,mij;
int valid1=0,valid2=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij].x==a.x && v[mij].y==a.y){
valid1=1;
break;
}
else {
if(comp(v[mij],a)==1) st=mij+1;
else dr=mij-1;
}
}
st=1;
dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij].x==b.x && v[mij].y==b.y){
valid2=1;
break;
}
else {
if(comp(v[mij],a)==1) st=mij+1;
else dr=mij-1;
}
}
if(valid1==1 && valid2==1) cnt++;
}
int main()
{
ifstream in("patrate3.in");
ofstream out("patrate3.out");
in>>n;
for(int i=1;i<=n;i++)
in>>v[i].x>>v[i].y;
sort(v+1,v+n+1,comp);
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
cauta(v[i],v[j]);
out<<cnt/7;
return 0;
}