Pagini recente » Cod sursa (job #2479862) | Cod sursa (job #2744475) | Cod sursa (job #2402879) | Cod sursa (job #2933563) | Cod sursa (job #383594)
Cod sursa(job #383594)
#include <stdio.h>
struct punct
{
int x,y;
};
punct v[1005];
int n,i,a[1005][1005],j,ii,jj,b[1005][1005],x,y,aux,nr1,nr2;
long long sol;
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d %d",&v[i].x,&v[i].y);
for (i=1;i<n;++i)
for (j=i+1;j<=n;++j)
{
if (v[i].y>v[j].y)
{
ii=j;
jj=i;
}
else
{
ii=i;
jj=j;
}
if (v[jj].x>v[ii].x)
{
x=v[jj].x-v[ii].x;
y=v[jj].y-v[ii].y;
nr1=x;
nr2=y;
while (nr2)
{
aux=nr1;
nr1=nr2;
nr2=aux%nr2;
}
x=x/nr1;
y=y/nr1;
sol+=a[x][y];
a[x][y]++;
}
else
{
x=v[ii].x-v[jj].x;
y=v[jj].y-v[ii].y;
nr1=x;
nr2=y;
while (nr2)
{
aux=nr1;
nr1=nr2;
nr2=aux%nr2;
}
x=x/nr1;
y=y/nr1;
sol+=b[x][y];
b[x][y]++;
}
}
printf("%lld",sol);
return 0;
}