Pagini recente » Cod sursa (job #820727) | Cod sursa (job #1232428) | Cod sursa (job #2789805) | Cod sursa (job #2751972) | Cod sursa (job #1513579)
#include <cstdio>
#include <climits>
#include <algorithm>
#define eps 0.0000000001
#define maxN 1005
using namespace std;
int n,x,y,i,j,sol,k,m;
struct punct{
int abscisa,ordonata;
}v[maxN];
double panta[maxN*maxN];
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].abscisa,&v[i].ordonata);
}
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(v[i].ordonata==v[j].ordonata)
panta[++k]=INT_MAX;
else panta[++k]=(double)(v[j].abscisa-v[i].abscisa)*1.0/(v[j].ordonata-v[i].ordonata);
}
}
sort(panta+1,panta+k+1);
m=1;
for(i=2;i<=k;i++)
if(panta[i]==panta[i-1]) m++;
else sol+=m*(m-1)/2,m=1;
sol+=m*(m-1)/2;
printf("%d",sol);
return 0;
}