Pagini recente » Cod sursa (job #1266129) | Cod sursa (job #1060041) | Cod sursa (job #1475217) | Cod sursa (job #694014) | Cod sursa (job #1996165)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n, i, j, x, y, N, nr;
double pnt;
struct punct {
int x, y;
}v[1005];
double vai[1000005];
long long sol;
int main() {
f >> n;
for (i = 1; i <= n; i++) {
f >> x >> y;
v[i] = {x,y};
}
for (i = 1; i <= n; i++) {
for (j = i+1; j <= n; j++) {
if (v[j].x == v[i].x) {
if (v[j].y > v[i].y)
pnt = 2e9+2;
else pnt = -2e9-2;
}
else pnt = (double)(v[j].y-v[i].y)/(v[j].x-v[i].x);
vai[++N] = pnt;
}
}
sort(vai+1, vai+N+1);
for (i = nr = 1; i <= N; i++)
if (vai[i]==vai[i-1])
nr++;
else
sol += nr*(nr-1), nr = 1;
g << sol/2;
return 0;
}