Pagini recente » Cod sursa (job #1867389) | Cod sursa (job #2335672) | Istoria paginii utilizator/mihaitapaul | Cod sursa (job #1321990) | Cod sursa (job #867429)
Cod sursa(job #867429)
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#define Infinit (1u<<31)-1
#define eps 1.e-14
using namespace std;
class POINT
{
private:int x,y;
public:
POINT()
{
x=0;y=0;
}
void set(int a,int b)
{
x=a;y=b;
}
int getx()
{
return x;
}
int gety()
{
return y;
}
};
int i,j,x,y,wut,k,maxx,n;
int cmp(double a,double b)
{
if(a-b<=-eps)
{
return 1;
}
return 0;
}
POINT v[1005];
double v2[1000005];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
v[i].set(x,y);
}
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
wut++;
if(v[j].getx()==v[i].getx())
{
v2[wut]=Infinit;
}
else
{
v2[wut]=((double)v[j].gety()-v[i].gety())/(v[j].getx()-v[i].getx());
}
}
}
sort(v2+1,v2+wut+1,cmp);
k=1;
for(i=2;i<=wut;i++)
{
if(fabs(v2[i-1]-v2[i])<eps)
{
k++;
}
else
{
maxx+=k*(k-1)/2;
k=1;
}
}
maxx+=k*(k-1)/2;
printf("%d",maxx);
return 0;
}