Pagini recente » Cod sursa (job #2813778) | Cod sursa (job #2727543) | Cod sursa (job #448137) | Cod sursa (job #536375) | Cod sursa (job #1845473)
#include <bits/stdc++.h>
using namespace std;
#define M1 666013
#define M2 1000000009
unordered_map<int,int> H;
int n;
double x[1001],y[1001];
int g(double x,double y)
{
int xx = round(x*10000),yy = round(y * 10000);
xx += M1; xx %= M1;
yy += M2; yy %= M2;
return xx * 31 + yy;
}
int main()
{
ifstream fin("patrate3.in");
ofstream fout("patrate3.out");
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> x[i] >> y[i];
x[i] += 10000;
y[i] += 10000;
H[g(x[i],y[i])]++;
}
long long sol = 0;
for (int i = 1; i <= n-3; i++) {
for (int j = i+1; j <= n; j++)
{
double x1,x2,y1,y2,xmid,ymid;
xmid = (x[i] + x[j]) / 2;
ymid = (y[i] + y[j]) / 2;
x1 = xmid + y[i] - ymid; y1 = ymid + xmid - x[i];
x2 = xmid + ymid - y[i]; y2 = ymid + x[i] - xmid;
if (H[g(x2,y2)] && H[g(x1,y1)])
sol++;
}
H[g(x[i],y[i])]--;
}
fout << sol;
}