Pagini recente » Cod sursa (job #2486448) | Cod sursa (job #1483013) | Cod sursa (job #760010) | Cod sursa (job #1239113) | Cod sursa (job #2286343)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n,nr,nrc,rez;
struct punct
{
int x,y;
};
punct a[1005];
struct panta
{
long long py,px;
};
panta v[1005*1005];
inline bool cmp(const punct &p,const punct &q)
{
if(p.x==q.x)
{
return p.y<q.y;
}
else
{
return p.x<q.x;
}
}
inline bool comp(const panta &p,const panta &q)
{
return p.py*q.px<p.px*q.py;
}
int main()
{
int i,j;
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i].x>>a[i].y;
}
sort(a+1,a+n+1,cmp);
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
nr++;
v[nr].py=a[j].y-a[i].y;
v[nr].px=a[j].x-a[i].x;
}
}
sort(v+1,v+nr+1,comp);
for(i=1;i<=nr;i++)
{
j=i;
nrc=0;
while(j<=nr && v[i].py*v[j].px==v[i].px*v[j].py)
{
nrc++;
j=j+1;
}
i=j-1;
rez=rez+nrc*(nrc-1)/2;
}
g<<rez;
return 0;
}