Pagini recente » Cod sursa (job #1760001) | Cod sursa (job #1432224) | Istoria paginii runda/listare-onis/clasament | Cod sursa (job #1735589) | Cod sursa (job #516665)
Cod sursa(job #516665)
#include <fstream>
using namespace std;
struct panta {int x,y;} v[1<<20],a[1<<10];
int n,m;
ifstream in("trapez.in");
ofstream out("trapez.out");
inline bool cmp(panta a,panta b)
{
return (long long)a.x*b.y<(long long)a.y*b.x;
}
inline bool egal(panta a,panta b)
{
return (long long)a.x*b.y==(long long)a.y*b.x;
}
int main()
{
int i,j;
long long nr=0;
in>>n;
for (i=1;i<=n;i++)
in>>a[i].x>>a[i].y;
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
{
v[++m].x=a[i].y-a[j].y;
v[m].y=a[i].x-a[j].x;
}
sort(v+1,v+m+i,cmp);
for (i=2,n=1;i<=m;i++,n++)
if (!egal(v[i],v[i-1]))
{
nr+=n*(n-1)/2;
n=0;
}
nr+=n*(n-1)/2;
out<<nr<<"\n";
return 0;
}