Pagini recente » Cod sursa (job #3131383) | Cod sursa (job #1376504) | Cod sursa (job #335141) | Cod sursa (job #930834) | Cod sursa (job #1822947)
#include <bits/stdc++.h>
using namespace std;
const int N=1005, Inf=1e9;
const double eps=1.e-14;
int n,cnt,nr;
long long sol;
struct Point{
double x,y;
} v[N];
double p[N*N];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%lf%lf",&v[i].x,&v[i].y);
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++){
if(v[j].x==v[i].x) p[++cnt]=Inf;
else p[++cnt]=(v[j].y-v[i].y)/(v[j].x-v[i].x);
}
sort(&p[1],&p[cnt+1]);
p[0]=Inf, p[cnt+1]=Inf;
for(i=1;i<=cnt+1;i++){
if(fabs(p[i]-p[i-1])<eps) nr++;
else{
sol+=nr*(nr-1)/2;
nr=1;
}
}
printf("%lld\n",sol);
return 0;
}