Pagini recente » Cod sursa (job #1086810) | Monitorul de evaluare | Istoria paginii runda/test12242435/clasament | Clasament dinamica | Cod sursa (job #1326623)
#include<cstdio>
#include<unordered_map>
#define NMAX 1005
using namespace std;
struct punct
{
int x,y;
}v[NMAX];
unordered_map<double, int> H;
int i,j,n;
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i) scanf("%d%d",&v[i].x,&v[i].y);
for (i=1;i<n;++i)
for (j=i+1;j<=n;++j)
{
H[(float)(v[j].y-v[i].y)/(v[j].x-v[i].x)]++;
}
unordered_map<double,int>::iterator it;
long long sum=0;
for (it=H.begin();it!=H.end();++it)
{
int x=it->second;
sum+=x*(x-1)/2;
}
printf("%lld\n",sum);
return 0;
}