Pagini recente » Cod sursa (job #379035) | Cod sursa (job #1083296) | Cod sursa (job #1447976) | Cod sursa (job #1427759) | Cod sursa (job #2081929)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int N, l[1001], c[1001], r;
double drepte[1000001];
const double e = 0.0000000000001;
int main()
{
f >> N;
int nrD = 0;
for (int i = 1; i <= N; i++)
f >> l[i] >> c[i];
for (int i = 1; i <= N; i++)
for (int j = 1; j < i; j++) {;
nrD++;
if (l[j] == l[i]) drepte[nrD] = -1; else
drepte[nrD] = (double)(c[j] - c[i]) / (l[j] - l[i]);
}
sort(drepte+1, drepte+nrD+1);
double precedent = drepte[1];
int aparitii = 1;
for (int i = 2; i <= nrD; i++) {
if ((drepte[i] - precedent <= e && drepte[i] >= precedent) || (precedent - drepte[i] <= e && drepte[i] <= precedent)) {
r += aparitii;
aparitii++;
} else {
precedent = drepte[i];
aparitii = 1;
}
}
g << r;
return 0;
}