Pagini recente » Cod sursa (job #1864166) | Cod sursa (job #844950) | Cod sursa (job #337368) | Cod sursa (job #1326584) | Cod sursa (job #1226481)
#include<cstdio>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
#define eps 1.e-14
#define inf 2000000000
class point
{
private:
int x,y;
public:
point()
{
x=y=0;
}
void set(int x0,int y0)
{
x=x0;
y=y0;
}
double panta(const point&other)
{
if(x-other.x==0)
return inf;
else
return ((double) other.y-y)/(other.x-x);
}
};
vector <point> v;
double p[100005];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int num=1,n,i,j,tx,ty,u=0,mmax=0;
point temp;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
scanf("%d%d",&tx,&ty);
temp.set(tx,ty);
v.push_back(temp);
}
u=0;
int l=1;
for(i=0;i<n;++i)
for(j=i+1;j<n;j++)
p[++u]=v[i].panta(v[j]);
sort(p+1,p+u+1);
for(i=2;i<=u;++i)
{
if(fabs(p[i]-p[i-1])<eps)
num++;
else
{
mmax+=num*(num-1)/2;
num=1;
}
}
mmax+=num*(num-1)/2;
printf("%d\n",mmax);
}