Pagini recente » Cod sursa (job #1096242) | Cod sursa (job #2932141) | Cod sursa (job #680213) | Cod sursa (job #612199) | Cod sursa (job #2349653)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
using namespace std;
fstream f("trapez.in", ios::in);
fstream g("trapez.out", ios::out);
struct point
{
int x, y;
point(int a, int b) : x(a), y(b) {}
point() {}
};
int n;
point v[1001];
map<pair<int, int>, int> slope;
void read()
{
f >> n;
for(int i = 0; i < n; ++i)
f >> v[i].x >> v[i].y;
}
void solve()
{
for(int i = 0; i < n; ++i)
for(int j = i + 1; j < n; ++j)
{
int mx = v[i].x - v[j].x;
int my = v[i].y - v[j].y;
if(mx < 0)
mx = -mx;
if(my < 0)
my = -my;
pair<int, int> p = make_pair(mx, my);
slope[p]++;
}
map<pair<int, int>, int>::iterator it;
int res = 0;
for(it = slope.begin(); it != slope.end(); ++it)
{
int num = it->second;
res += num * (num - 1) / 2;
}
g << res;
}
int main()
{
read();
solve();
return 0;
}