Pagini recente » Cod sursa (job #2816349) | Cod sursa (job #452469) | Cod sursa (job #2661552) | Cod sursa (job #8258) | Cod sursa (job #1307648)
#include <iostream>
#include <cstdio>
#include <fstream>
#include <set>
#include <cmath>
#define pii pair <int, int>
#define pdd pair <double, double>
#define mp make_pair
#define x first
#define y second
using namespace std;
const int NMax = 1024;
const int MOD = 30011;
int N;
pii a[NMax];
int ans;
set <pdd> s;
int main()
{
FILE *f = fopen("patrate3.in", "r");
fscanf(f, "%d", &N);
for (int i = 1; i <= N; ++ i)
{
int x, y, xzec, yzec;
fscanf(f, "%d.%d %d.%d", &x, &xzec, &y, &yzec);
a[i].x = (x * 10000 + xzec);
a[i].y = (y * 10000 + yzec);
s.insert(mp(a[i].x, a[i].y));
}
for (int i = 1; i <= N; ++ i)
for (int j = i + 1; j <= N; ++ j)
{
double x1 = a[i].x, x2 = a[j].x;
double y1 = a[i].y, y2 = a[j].y;
if (x1 > x2)
{
swap(x1, x2);
swap(y1, y2);
}
double x3, y3, x4, y4;
double mijx = (x1 + x2) / 2, mijy = 1.0 * (y1 + y2) / 2;
double dx = fabs(x1 - mijx), dy = fabs(y1 - mijy);
if (y1 < y2)
{
x3 = mijx - dy; y3 = mijy + dx;
x4 = mijx + dy; y4 = mijy - dx;
}
else
{
x3 = mijx - dy; y3 = mijy - dx;
x4 = mijx + dy; y4 = mijy + dx;
}
if (s.find(mp(x3, y3)) != s.end() && s.find(mp(x4, y4)) != s.end())
++ ans;
}
ofstream g ("patrate3.out");
g << ans / 2 << "\n";
g.close();
return 0;
}