Pagini recente » Cod sursa (job #471016) | Cod sursa (job #2347078) | Cod sursa (job #900065) | Cod sursa (job #926254) | Cod sursa (job #2745716)
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
long double panta[1000*1001/2];
struct POINT
{
int x,y;
}v[1001];
int main()
{
int n,k=0;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>v[i].x>>v[i].y;
for(int j=1;j<i;j++)
{
long double r;
if (v[i].x!=v[j].x)
r=1.0*(v[i].y-v[j].y)/(v[i].x-v[j].x);
else r=1e9;
panta[++k]=r;
}
}
// for(int i=1;i<=k;i++)
// cout<<panta[i]<<" ";
// cout<<'\n';
sort(panta+1,panta+k+1);
int i=1;
long long cnt=0;
while (i<=k)
{
int nrp=1;
while(i<=k&&panta[i+1]==panta[i])
{
i++;
nrp++;
}
i++;
cnt+=nrp*(nrp-1)/2;
}
cout<<cnt;
return 0;
}