Pagini recente » Cod sursa (job #945741) | Cod sursa (job #1320937) | Cod sursa (job #1725166) | Cod sursa (job #89688) | Cod sursa (job #1410958)
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define e 0.0000000000000001
#define Nmax 1005
using namespace std;
int n,i,j,k,nr,sol,m;
struct nod
{
double x;
double y;
}v[Nmax],w[500505];
int cmp(const nod a,const nod b)
{
return (a.x/a.y)<(b.x/b.y);
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%lf %lf",&v[i].x,&v[i].y);
for (i=1;i<n;++i)
for (j=i+1;j<=n;++j)
{
++nr;
w[nr].x=v[i].y-v[j].y;
w[nr].y=v[j].x-v[i].x;
if (w[nr].y==0)
swap(w[nr].x,w[nr].y),w[nr].y=-w[nr].y;
}
sort(w+1,w+nr+1,cmp);
for (i=2;i<=nr;++i)
if (abs(w[i].x/w[i].y-w[i-1].x/w[i-1].y)<=e) m++;
else {sol=sol+(m*(m+1)/2); m=0;}
printf("%d",sol);
return 0;
}