Pagini recente » Cod sursa (job #1909435) | Cod sursa (job #2489582) | Cod sursa (job #444730) | Cod sursa (job #1882546) | Cod sursa (job #1655080)
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std;
const int INF = (1LL << 32) - 1;
const double eps = 1.e-14;
vector <double> v;
int a[1002][4];
int main() {
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i = 1; i <= n; ++ i) {
scanf("%d%d", &a[i][1], &a[i][2]);
}
for(int i = 1; i <= n; ++ i) {
for(int j = i + 1; j <= n; ++ j) {
if(a[j][1] == a[i][1])
v.push_back(INF);
else
v.push_back((double)(a[j][2] - a[i][2]) / (a[j][1] - a[i][1]));
}
}
sort(v.begin(), v.end());
int l = 1;
long long rasp = 0;
n = v.size();
for(int i = 1; i < n; ++ i) {
if(fabs(v[i] - v[i - 1]) < eps) {
++ l;
} else {
rasp = rasp + ((l - 1) * l) / 2;
l = 1;
}
}
rasp = rasp + ((l - 1) * l) / 2;
printf("%lld\n", rasp);
return 0;
}