Pagini recente » Cod sursa (job #181675) | Cod sursa (job #2371382) | Cod sursa (job #289857) | Cod sursa (job #1754100) | Cod sursa (job #2606220)
#include <cstdio>
#include <algorithm>
int x[1005],y[1005];
double s[500001];
int s_size;
const int INF = 2e+9;
double slope(int x1, int y1, int x2, int y2)
{
if(x1==x2)
return INF;
return (double)(((y2-y1))/((double)(x2-x1)));
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n;
scanf("%d",&n);
for(int i = 1; i<=n; i++)
{
scanf("%d%d",&x[i],&y[i]);
}
for(int i=1; i<n; i++)
for(int j=i+1; j<=n; j++)
{
s[++s_size] = slope(x[i],y[i],x[j],y[j]);
}
std::sort(s+1,s+s_size+1);
long long l=1;
long long tr=0;
for(int i=1; i<s_size; i++)
{
if(s[i]==s[i-1])
l++;
else
{
tr+=l*(l-1)/2;
l=1;
}
}
tr+=l*(l-1)/2;
printf("%lld",tr);
return 0;
}