Pagini recente » Cod sursa (job #229222) | Cod sursa (job #2117650) | Cod sursa (job #499972) | Cod sursa (job #2255573) | Cod sursa (job #2260228)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
struct gigi
{
int x, y;
};
gigi a[1005];
gigi v[100005];
int p[100005];
int main()
{
int n, k = 1;
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i].x >> a[i].y;
for (int q = 1; q < n; q++)
for (int z = q + 1; z <= n; z++)
{
bool gigi = 0;
int x1 = a[z].x, y1 = a[z].y, x2 = a[q].x, y2 = a[q].y;
for (int i = 1; i <= k; i++)
if ((long long)v[i].x * abs(y2 - y1) == (long long)v[i].y * abs(x2 - x1) && (v[i].x * abs(y2 - y1) != 0 || v[i].x == abs(x2 - x1)))
{
p[i]++;
gigi = 1;
break;
}
if (gigi == 0)
{
k++;
v[k].x = abs(x2 - x1);
v[k].y = abs(y2 - y1);
p[k]++;
}
}
int s = 0;
for (int i = 1; i <= k; i++)
s = s + p[i] * (p[i] - 1) / 2;
fout << s << '\n';
return 0;
}