Pagini recente » Cod sursa (job #1037115) | Cod sursa (job #1830447) | Cod sursa (job #2722090) | Cod sursa (job #1122598) | Cod sursa (job #1802832)
#include <fstream>
#include <algorithm>
#include <stdio.h>
#define MAX 1000
using namespace std;
struct punct {
int x, y;
};
int main()
{
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int N;
punct v[MAX];
float pante[MAX * MAX] = {0};
fin >> N;
for (int i = 0; i < N; i++) {
fin >> v[i].x >> v[i].y;
for (int j = 0; j < i; j++) {
if (v[i].x == v[j].x) {
pante[(i - 1) * i / 2 + j] = 2000000000.0;
} else {
pante[(i - 1) * i / 2 + j] = (float) (v[j].y - v[i].y) / (v[j].x - v[i].x);
}
}
}
sort(pante, pante + (N - 1) * N / 2);
for (int i = 0; i < N * 2; i++) {
printf("%f ", pante[i]);
}
int i = 0, x, nr_trapeze = 0;
while (i < (N - 1) * N / 2) {
x = i;
i++;
while (i < 2 * N && pante[i] == pante[x]) {
i++;
}
nr_trapeze += (i - x) * (i - x - 1) / 2;
}
fout << nr_trapeze;
fin.close();
fout.close();
return 0;
}