Pagini recente » Cod sursa (job #3130582) | Cod sursa (job #1632446) | Cod sursa (job #2421271) | Cod sursa (job #1753774) | Cod sursa (job #865724)
Cod sursa(job #865724)
#include <fstream>
#include <algorithm>
#define eps 1e-9
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
const int NMAX = 1000;
struct punct { int x, y;} p[NMAX];
int N, K;
long double slopes[NMAX*NMAX];
inline bool isEqual(long double a,long double b) {
return (b - a < eps);
}
int main()
{
cin>>N;
for(int i = 0;i < N;i++) {
cin>>p[i].x>>p[i].y;
}
for(int i = 0;i < N;i++) {
for(int j = i + 1;j < N;j++) {
slopes[K++] =((long double)1ll*p[i].y - p[j].y)/((long double)1ll*p[i].x - p[j].x);
}
}
sort(slopes,slopes + K);
double s = slopes[0];
int curr = 1;
long long ans = 0;
for(int i = 1;i < K;i++) {
if(isEqual(s,slopes[i])) {
curr++;
} else {
ans += (1ll*curr*(curr - 1))>>1ll;
curr = 1;
s = slopes[i];
}
}
cout<<ans;
return 0;
}