Pagini recente » Cod sursa (job #2235136) | Cod sursa (job #384720) | Cod sursa (job #1130342) | Cod sursa (job #1760391) | Cod sursa (job #2004383)
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int nmax=1005;
const int inf=2e9+5;
struct point
{
int x,y;
}p[nmax];
double pante[(nmax*(nmax-1))>>1];
int top;
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d%d",&p[i].x,&p[i].y);
for(i=1;i<=n;++i)
for(j=i+1;j<=n;++j)
if(p[i].x==p[j].x)
{
if(p[j].y>p[i].y)
pante[++top]=inf;
else
pante[++top]=-1*inf;
}
else
pante[++top]=(double)(p[j].y-p[i].y)/(p[j].x-p[i].x);
sort(pante+1,pante+top+1);
long long sol=0,nr;
for(i=1,nr=1;i<=top;++i)
if(pante[i] == pante[i-1])
nr++;
else
sol+=(nr*(nr-1)),nr=1;
printf("%lld",sol/2);
}