Pagini recente » Cod sursa (job #2586484) | Cod sursa (job #1986139) | Cod sursa (job #2855667) | Cod sursa (job #3264948) | Cod sursa (job #2935620)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 1005
pair<int, int> slope(pair<int, int>& a, pair<int, int>& b) {
int dy = a.second - b.second, dx = a.first - b.first;
if (dx == 0)
return {0, 1};
if (dy == 0)
return {1, 0};
if ((dx < 0) + (dy < 0) == 1)
dy = -abs(dy);
else
dy = abs(dy);
dx = abs(dx);
int gcd = __gcd(dx, dy);
return {dx / gcd, dy / gcd};
}
int main() {
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int n;
fin >> n;
vector<pair<int, int>> points(n);
for (int i = 0; i < n; ++i)
fin >> points[i].first >> points[i].second;
map<pair<int, int>, int> m;
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j)
++m[slope(points[i], points[j])];
int ans = 0;
for(auto& [_, i] : m)
ans += (i * (i - 1)) / 2;
fout << ans << '\n';
}