Pagini recente » Cod sursa (job #712344) | Borderou de evaluare (job #2636701) | Cod sursa (job #1134277) | Cod sursa (job #1289448) | Cod sursa (job #1838409)
#include <cstdio>
#include <algorithm>
#define BIG 2000000000
FILE *fin, *fout;
double u[1000 * 1000];
int x[1000], y[1000];
bool cmp(double a, double b) {
return a < b;
}
int main() {
fin = fopen("trapez.in", "r");
fout = fopen("trapez.out", "w");
int n, a, b;
fscanf(fin, "%d", &n);
for(int i = 0;i < n;i++) {
fscanf(fin, "%d%d", &x[i], &y[i]);
}
int ind = 0;
for(int i = 0;i < n;i++)
for(int j = i + 1;j < n;j++) {
if(y[i] - y[j])
u[ind++] = (double)(x[i] - x[j]) / (double)(y[i] - y[j]);
else
u[ind++] = BIG;
}
std::sort(u, u + ind, cmp);
int k = u[0];
int nr = 1;
long long t = 0;
for(int i = 1;i < ind;i++) {
if(u[i] == k) {
nr++;
}
else {
t += nr * (nr - 1) / 2,
nr = 1;
}
k = u[i];
}
fprintf(fout, "%lld", t);
fclose(fin);
fclose(fout);
return 0;
}