Pagini recente » Cod sursa (job #673112) | Cod sursa (job #1074371) | Cod sursa (job #1978250) | Cod sursa (job #524991) | Cod sursa (job #803920)
Cod sursa(job #803920)
#include <fstream>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
const int MAX_N = 1005, INF = 1 << 30;
int N;
double x[MAX_N], y[MAX_N];
vector<double> panta;
int main() {
fin >> N;
for (int i = 0; i < N; ++i) {
fin >> x[i] >> y[i];
}
for (int i = 0; i < N; ++i) {
for (int j = i + 1; j < N; ++j) {
if (x[i] != x[j]) {
panta.push_back((y[j] - y[i]) / (x[j] - x[i]));
} else {
panta.push_back(double(INF));
}
}
}
sort(panta.begin(), panta.end());
int result = 0, numTr = 1;
for (int i = 0; i < panta.size() - 1; ++i) {
if (panta[i] == panta[i+1]) {
++numTr;
} else {
result += (numTr * (numTr - 1)) / 2;
numTr = 1;
}
}
fout << result;
}