Pagini recente » Cod sursa (job #2629444) | Cod sursa (job #2038343) | Cod sursa (job #1677537) | Cod sursa (job #757668) | Cod sursa (job #2613725)
#include<fstream>
#include<iostream>
#include<vector>
#include<algorithm>
#define MAX_N 1000
#define EPS 1e-12
#define oo 2000001050.0
using namespace std;
vector<pair<int, int>> point;
double p[MAX_N * (MAX_N + 1) / 2];
int main() {
int n, x, y, j, m;
long long cnt;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
fin >> n;
for(int i = 0; i < n; ++i) {
fin >> x >> y;
point.push_back(make_pair(x, y));
}
fin.close();
m = 0;
for(unsigned i = 0; i < point.size(); ++i) {
for(unsigned j = i + 1; j < point.size(); ++j)
if(point[i].first == point[j].first)
p[m++] = oo;
else p[m++] = (double)(point[i].second - point[j].second) / (double)(point[i].first - point[j].first);
}
sort(p, p + m);
int i = 0;
cnt = 0;
while(i < n) {
j = 1;
i++;
while((i < n) && (p[i] - p[i - 1] < EPS)) {
j++;
i++;
}
cnt += (j * (long long)(j - 1)) / 2LL;
}
fout << cnt << "\n";
fout.close();
return 0;
}