Pagini recente » Cod sursa (job #3359202) | Cod sursa (job #3359183) | Cod sursa (job #3359196) | Cod sursa (job #3359197)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("triang.in");
ofstream fout("triang.out");
const double SQRT3 = sqrt(3.0);
const double MUL = 1000.0;
struct Point {
double x, y;
};
int n;
long long ans;
vector<Point> p;
set<pair<long long, long long> > s;
pair<long long, long long> cod(double x, double y) {
return {llround(x * MUL), llround(y * MUL)};
}
int main() {
fin >> n;
p.resize(n);
for(int i = 0; i < n; i++) {
fin >> p[i].x >> p[i].y;
s.insert(cod(p[i].x, p[i].y));
}
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) {
double dx = p[j].x - p[i].x;
double dy = p[j].y - p[i].y;
double x1 = p[i].x + dx / 2.0 - dy * SQRT3 / 2.0;
double y1 = p[i].y + dy / 2.0 + dx * SQRT3 / 2.0;
double x2 = p[i].x + dx / 2.0 + dy * SQRT3 / 2.0;
double y2 = p[i].y + dy / 2.0 - dx * SQRT3 / 2.0;
if(s.find(cod(x1, y1)) != s.end()) ans++;
if(s.find(cod(x2, y2)) != s.end()) ans++;
}
}
fout << ans / 3 << "\n";
return 0;
}