Pagini recente » Cod sursa (job #3178193) | Cod sursa (job #847188)
Cod sursa(job #847188)
#include <fstream>
#include <algorithm>
#include <vector>
#include <math.h>
#include <stdlib.h>
using namespace std;
ifstream fi ("trapez.in");
ofstream fo ("trapez.out");
const int dim = 1002;
int N, NM;
long long NR;
double M[dim*dim];
struct punct { long long x, y; } P[dim];
void cit ()
{
fi >> N;
for (int i = 1; i <= N; i++)
{
fi >> P[i].x >> P[i].y;
}
}
void pre ()
{
int i, j;
for (i = 1; i <= N; i++)
{
for (j = i + 1; j <= N; j++)
{
M[++NM] = (double)(P[i].y - P[j].y) / (P[i].x - P[j].x);
//M[NM] = (double)(int)(M[NM] * 10000000.0) / 10000000.0;
}
}
sort (M + 1, M + NM + 1);
}
void rez ()
{
long long nr = 1;
for (int i = 2; i <= NM; i++)
{
if (M[i] == M[i-1])
nr ++;
else
{
if (nr > 1) NR += ((nr - 1) * nr) >> 1;
nr = 1;
}
}
if (nr > 1) NR += ((nr - 1) * nr) >> 1;
fo << NR << '\n';
}
int main ()
{
cit ();
pre ();
rez ();
return 0;
}