Pagini recente » Cod sursa (job #1128921) | Cod sursa (job #2664253) | Cod sursa (job #184834) | Cod sursa (job #1118677) | Cod sursa (job #2641764)
#include <bits/stdc++.h>
#define eps 0.00001
using namespace std;
ifstream f("patrate3.in");
ofstream g("patrate3.out");
struct wow
{
double x,y;
}v[1005],a,b;
bool compare (wow a,wow b)
{
if (abs(a.x<b.x)<eps)
{
return a.y<b.y;
}
return a.x<b.x;
}
int n,i,j;
long long numar;
int caut (wow a)
{
int st=1,dr=n,mij;
while (st<=dr)
{
mij=(st+dr)/2;
if (abs(v[mij].x-a.x)<eps&&abs(v[mij].y-a.y)<eps)
{
return 1;
}
if (compare(v[mij],a)==1)
{
st=mij+1;
}
else
{
dr=mij-1;
}
}
return 0;
}
int main()
{
f>>n;
for (i=1;i<=n;i++)
{
f>>v[i].x>>v[i].y;
}
sort (v+1,v+n+1,compare);
for (i=1;i<=n;i++)
{
for (j=i+1;j<=n;j++)
{
a.x = v[i].x + v[i].y - v[j].y;
a.y = v[i].y + v[j].x - v[i].x;
b.x = v[j].x + v[i].y - v[j].y;
b.y = v[j].y + v[j].x - v[i].x;
if (caut(a)==1&&caut(b)==1)
{
numar++;
}
}
}
g<<numar/2;
return 0;
}