Pagini recente » Cod sursa (job #312820) | Cod sursa (job #2735531) | Cod sursa (job #1642979) | Cod sursa (job #2771176) | Cod sursa (job #1668246)
#include <fstream>
#include <algorithm>
#include <iomanip>
#define NMAX 1005
#define inf 1e15
#define eps 1e-15
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int i, n, j, x[NMAX], y[NMAX], cont = 0, ans = 0;
double panta[NMAX * NMAX];
bool comp(double a, double b)
{
return a - b < eps;
}
int main()
{
f >> n;
for (i = 1; i <= n; ++ i)
{
f >> x[i] >> y[i];
for (j = i - 1; j >= 1; -- j)
if (x[i] == x[j])
panta[++ cont] = inf;
else
panta[++ cont] = (double) (y[i] - y[j]) / (x[i] - x[j]);
}
sort(panta + 1, panta + cont + 1, comp);
int curr = 1;
for (i = 2; i <= cont; ++ i)
if (panta[i] - panta[i - 1] <= eps)
curr ++;
else
{
ans += curr * (curr - 1) / 2;
curr = 1;
}
ans += curr * (curr - 1) / 2;
g << ans << '\n';
return 0;
}