Pagini recente » Cod sursa (job #2051083) | Cod sursa (job #1100831) | Cod sursa (job #782760) | Cod sursa (job #618833) | Cod sursa (job #919745)
Cod sursa(job #919745)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream in ("trapez.in");
ofstream out ("trapez.out");
const double EPS = 1e-5;
struct point
{
int x, y;
} V[1010];
double Pante[500010];
inline double panta (const point &A, const point &B)
{
if (A.x == B.x)
return 1e9;
return (double) (B.y - A.y) / (B.x - A.x);
}
inline bool paralele (const double &A, const double &B)
{
return (fabs (A - B) < EPS);
}
int main()
{
int N, i, j, x, y, K = 0, start, Ans = 0;
in >> N;
for (i = 1; i <= N; i ++){
in >> x >> y;
V[i].x = x;
V[i].y = y;
for (j = 1; j < i; j ++)
Pante[++ K] = panta (V[i], V[j]);
}
sort (Pante + 1, Pante + K + 1);
for (i = 1; i <= K; i ++){
start = i;
i ++;
while (Pante[start] == Pante[i] && i <= K)
i ++;
Ans += (i - start) * (i - start - 1) / 2;
i --;
}
out << Ans;
return 0;
}