Pagini recente » Cod sursa (job #1038742) | Cod sursa (job #1613433) | Cod sursa (job #1938424) | Diferente pentru implica-te/arhiva-educationala intre reviziile 27 si 26 | Cod sursa (job #1996164)
#include <fstream>
#include <iostream>
#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++) {
cout << vai[i] << ' ';
if (vai[i]==vai[i-1])
nr++;
else
sol += nr*(nr-1), nr = 1;
}
g << sol/2;
return 0;
}