Pagini recente » Cod sursa (job #3356121) | Cod sursa (job #934540) | Cod sursa (job #573523) | Cod sursa (job #737972) | Cod sursa (job #3320669)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
long long x[1001], y[1001];
long long dx[500000], dy[500000];
long long cmmdc(long long a, long long b)
{
if (a < 0) a = -a;
if (b < 0) b = -b;
while (b)
{
long long r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
int n, i, j, k = 0;
long long trapeze = 0;
fin >> n;
for (i = 0; i < n; i++)
fin >> x[i] >> y[i];
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
{
long long a = y[j] - y[i];
long long b = x[j] - x[i];
if (b == 0)
{
a = 1;
b = 0;
}
else if (a == 0)
{
a = 0;
b = 1;
}
else
{
if (b < 0)
{
b = -b;
a = -a;
}
long long g = cmmdc(a, b);
a /= g;
b /= g;
}
dy[k] = a;
dx[k] = b;
k++;
}
for (i = 0; i < k - 1; i++)
for (j = i + 1; j < k; j++)
if (dx[i] == dx[j] && dy[i] == dy[j])
trapeze++;
fout << trapeze;
return 0;
}