Pagini recente » Cod sursa (job #3290886) | Cod sursa (job #2494651) | Cod sursa (job #2807163) | Cod sursa (job #2226472) | Cod sursa (job #1347684)
#include<cstdio>
#include<algorithm>
using namespace std;
struct aa{long long x,y;};
aa vv[1001];
aa v[1000001];
bool sortare(aa a, aa b)
{if(a.x*b.y>a.y*b.x)
return 0;
return 1;
}
int main ()
{freopen ("trapez.in","r",stdin);
freopen ("trapez.out","w",stdout);
int n,i,j,a=0,b=0,k=0,x,q;
long long s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%lld%lld",&vv[i].x,&vv[i].y);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{if(vv[i].x==vv[j].x)
a++;
else
if(vv[i].y==vv[j].y)
b++;
else
{k++;
v[k].x=vv[i].x-vv[j].x;
v[k].y=vv[i].y-vv[j].y;
}
}
s=a*(a-1)/2+b*(b-1)/2;
sort(v+1,v+k+1,sortare);
for(i=2;i<=n;i++)
{q=1;
while(v[i].x*v[i-1].y==v[i-1].x*v[i].y)
{q++;
i++;
}
s+=q*(q-1)/2;
}
printf("%lld",s);
return 0;
}