Cod sursa(job #3359197)

Utilizator rares89_Dumitriu Rares rares89_ Data 26 iunie 2026 02:47:17
Problema Triang Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#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;
}