Pagini recente » Cod sursa (job #1643914) | Cod sursa (job #412009) | Cod sursa (job #1804906) | Cod sursa (job #1039693) | Cod sursa (job #255330)
Cod sursa(job #255330)
#include <algorithm>
using namespace std;
#include <stdio.h>
#define DIM 1000005
#define INF 1LL<<60
struct punct {int x,y;} v[1001];
double a[DIM];
int n,m;
long long nrt=1;
void read ()
{
int i;
scanf ("%d",&n);
for (i=1; i<=n; ++i)
scanf ("%d%d",&v[i].x,&v[i].y);
}
void panta ()
{
int i,j,x,y;
for (i=1; i<n; ++i)
for (j=i+1; j<=n; ++j)
{
y=v[j].y-v[i].y;
x=v[j].x-v[i].x;
if (x==0)
a[++m]=INF;
else
a[++m]=(double)y/x;
}
}
void solve ()
{
int i,nr;
for (i=1; i<m; )
if (a[i]==a[i+1])
{
nr=1;
while (a[i]==a[i+1] && i<m)
{
++i;
++nr;
}
if (nr%2)
nrt*=((nr-1)/2)*nr;
else
nrt*=(nr/2)*(nr-1);
}
else
++i;
printf ("%lld",nrt);
}
int main ()
{
freopen ("trapez.in","r",stdin);
freopen ("trapez.out","w",stdout);
read ();
panta ();
sort (a+1,a+m+1);
solve ();
return 0;
}