Pagini recente » Cod sursa (job #1411840) | Cod sursa (job #1510163) | Cod sursa (job #3244017) | Cod sursa (job #710824) | Cod sursa (job #1217024)
#include <cstdio>
#include <algorithm>
using namespace std;
struct punct {
long long x,y;
}a[1000];
struct panta {
long long numar,numit;
}b[500500];
long i,j,n,nr,p,u,m,l;
bool cmp(const panta a,const panta b)
{
if (a.numar*b.numit==b.numar*a.numit) return 0;
bool r=(a.numar*b.numit<b.numar*a.numit);
if (b.numit<0) r=!r;
if (a.numit<0) r=!r;
return r;
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d%d",&a[i].x,&a[i].y);
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
{
b[m].numar=a[j].x-a[i].x;
b[m].numit=a[j].y-a[i].y;
m++;
}
sort(b,b+m,cmp);
for (i=1;i<m;i++)
if (b[i-1].numar*b[i].numit==b[i].numar*b[i-1].numit) l++;
else {
nr+=(l-1)*l/2;
l=1;
}
nr+=(l-1)*l/2;
printf("%d",nr);
}