Pagini recente » Cod sursa (job #2714113) | Cod sursa (job #2867090) | oni_gim_2016 | Cod sursa (job #1436494) | Cod sursa (job #516666)
Cod sursa(job #516666)
#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+=(long long)n*(n-1)/2;
n=0;
}
nr+=(long long)n*(n-1)/2;
out<<nr<<"\n";
return 0;
}