Pagini recente » Cod sursa (job #2494390) | Cod sursa (job #84970) | Cod sursa (job #57892) | Cod sursa (job #2721332) | Cod sursa (job #1360824)
#include <cstdio>
#include <vector>
#include <algorithm>
#define eps 0.000000001
#define mp make_pair
using namespace std;
long long result=0LL;
int x,y,i,j,n,nr;
vector<double> a;
vector<pair<int,int> > b;
double panta(int x,int y)
{
int X,Y;
X=b[i].first-b[j].first;
Y=b[i].second-b[j].second;
return (double)Y/X*1.0;
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
{
scanf("%d%d",&x,&y);
++x;++y;b.push_back(mp(x,y));
}
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
a.push_back(panta(i,j));
sort(a.begin(),a.end());
for(i=1;i<=n*n;++i)
{
nr=0;
while(a[i]-a[i+1]<eps && a[i+1]-a[i]<eps)
{
++nr;
if(i+1==n*n) break;
++i;
}
result+=1LL*nr*(nr-1)/2;
}
printf("%lld\n",result);
return 0;
}