Pagini recente » Cod sursa (job #476022) | Cod sursa (job #2459881) | Cod sursa (job #2209159) | Cod sursa (job #70310) | Cod sursa (job #1981393)
#include <cstdio>
#include<vector>
#include<algorithm>
#include<math.h>
using namespace std;
const double eps=1.e-14;
const double INF=2000000000;
vector <double> m;
struct POINT
{
int x,y;
};
POINT v[1005];
double panta (POINT a,POINT b)
{
if(b.x==a.x)
return INF;
return (1.0*b.y-a.y)/(b.x-a.x);
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int k=0,n,i,j,tempx,tempy;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d%d",&tempx,&tempy);
v[i].x=tempx;
v[i].y=tempy;
}
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
{
m.push_back(panta(v[i],v[j]));
}
k=m.size();
sort(m.begin(),m.end());
int l1=1,s=0;
double nr=m[0];
for(i=1; i<k; i++)
{
if(fabs(m[i]-nr)<eps)
l1++;
else
s+=l1*(l1-1)/2,l1=1,nr=m[i];
}
printf("%d",s);
return 0;
}