Pagini recente » Cod sursa (job #2547898) | Cod sursa (job #2157060) | Cod sursa (job #2421764) | Cod sursa (job #1337339) | Cod sursa (job #2292849)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int M = 1000010;
struct Punct
{
double x, y;
};
int main()
{
int n, i, j, k, sol, x, N;
//double *v;
double v[M];
// Punct *p;
Punct p[1010];
ifstream in ("trapez.in");
ofstream out ("trapez.out");
in >> n;
//p = new Punct [n+1];
for (i = 0; i < n; i ++)
in >> p[i].x >> p[i].y;
// N = n*n;
// v = new double [N+1];
k = 0;
for (i = 0; i < n; i++)
for(j = 0; j < n ; j ++)
v[k++] = (double)(p[j].x - p[i].x) / (p[j].y- p[i].y);
sort (v, v+k);
sol = 0;
for ( i = 0; i < k; i++)
{
x = 1;
while (i < k && v[i] == v[i+1])
{
i++;
x++;
}
if ( x % 2 == 0 )
sol += (x/2)*(x-1);
else sol += x*((x-1)/2);
}
out << sol;
in.close();
out.close();
//
// delete p;
// delete v;
return 0;
}