Pagini recente » Cod sursa (job #2552629) | Cod sursa (job #2092857) | Cod sursa (job #2732660) | Cod sursa (job #1115587) | Cod sursa (job #2975083)
#include <fstream>
#include <algorithm>
using namespace std;
struct dreapta
{
long long int dy, dx;
}f[1000005];
long long int a[1005], b[1005];
long long int cmp(dreapta x, dreapta y)
{
return x.dy*y.dx<x.dx*y.dy;
}
int main()
{
ifstream cin("trapez.in");
ofstream cout("trapez.out");
long long int n, h=0, cnt=1, s=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i]>>b[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
f[h].dx=a[i]-a[j];
f[h].dy=b[i]-b[j];
h++;
}
}
sort(f, f+h, cmp);
for(int i=1;i<h;i++)
{
if(f[i-1].dy*f[i].dx==f[i-1].dx*f[i].dy)
cnt++;
else
{
s+=(cnt*(cnt-1)/2);
cnt=1;
}
}
s+=(cnt*(cnt-1)/2);
cout<<s;
return 0;
}