Pagini recente » Cod sursa (job #2856832) | Cod sursa (job #2208626) | Cod sursa (job #1142819)
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#define Eps 1e-9
#define x first
#define y second
#define NMAX 1007
#define INF 2000000007
using namespace std;
pair< double, double > a[NMAX];
vector< double > Pant;
inline double Panta(pair< double, double > A, pair< double, double > B){
if(fabs(B.x - A.x) < Eps)
return (double) INF;
return (double)(B.y - A.y) / (double)(B.x - A.x);
}
int main(){
int n;
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%lf %lf", &a[i].x, &a[i].y);
for(int i = 1; i <= n; ++i)
for(int j = i + 1; j <= n; ++j)
Pant.push_back(Panta(a[i], a[j]));
int Cnt = 1, Ans = 0;
sort(Pant.begin(), Pant.end());
for(int i = 0; i < Pant.size() - 1; ++i)
if(fabs(Pant[i] - Pant[i + 1]) < Eps)
++Cnt;
else{
Ans += (Cnt * (Cnt - 1)) / 2;
Cnt = 1;
}
printf("%d", Ans);
return 0;
}