Pagini recente » Cod sursa (job #1137762) | Cod sursa (job #373105) | Cod sursa (job #491055) | Cod sursa (job #1781702) | Cod sursa (job #1822550)
#include <bits/stdc++.h>
using namespace std;
const int N=1005;
const double eps=1.e-8;
int n,cnt;
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++){
cnt++;
p[cnt]=(v[j].y-v[i].y)/(v[j].x-v[i].x);
}
sort(&p[1],&p[cnt+1]);
p[0]=-2000000005.0;
p[cnt+1]=2000000005.0;
//for(i=1;i<=cnt;i++) printf("%lf ",p[i]);
int nr=1;
long long sol=0ll;
for(i=1;i<=cnt;i++){
if(fabs(p[i]-p[i-1])<eps) nr++;
else{
//printf("%lf %d\n",p[i],nr);
sol+=nr*(nr-1)/2;
nr=1;
}
}
printf("%lld\n",sol);
return 0;
}