Pagini recente » Cod sursa (job #2500534) | Cod sursa (job #1232354) | Cod sursa (job #2835245) | Cod sursa (job #2790417) | Cod sursa (job #2932766)
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
ifstream fin( "trapez.in" );
ofstream fout( "trapez.out" );
const int DIM = 1005;
map<pair<int, int>, int> M;
pair<int, int> v[DIM];
int main() {
int n;
fin >> n;
for ( int i = 0; i < n; ++i ) {
fin >> v[i].x >> v[i].y;
}
for ( int i = 0; i < n; ++i ) {
for ( int j = i + 1; j < n; ++j ) {
pair<int, int> T = {v[i].x - v[j].x, v[i].y - v[j].y};
int d = __gcd(T.first, T.second);
int a = T.first / d, b = T.second / d;
++M[{a, b}];
++M[{-a, -b}];
}
}
int res = 0;
for ( int i = 0; i < n; ++i ) {
for ( int j = i + 1; j < n; ++j ) {
pair<int, int> T = {v[i].x - v[j].x, v[i].y - v[j].y};
int d = __gcd(T.first, T.second);
int a = T.first / d, b = T.second / d;
res += M[{a, b}] - 1;
}
}
fout << res / 2;
fin.close();
fout.close();
return 0;
}