Pagini recente » Cod sursa (job #2555124) | Cod sursa (job #2600605) | Cod sursa (job #1660709) | Cod sursa (job #1788301) | Cod sursa (job #694040)
Cod sursa(job #694040)
#include<cstdio>
#include<cmath>
#include<map>
#include<algorithm>
#define epsilon 0.0000000000001
using namespace std;
void read(),solve();
map<double,int> M;
int n,i,x[1010],y[1010],precalc[1010],SOL,j,a,b,c,d;
double ung;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x[i],&y[i]);
precalc[i]=precalc[i-1]+i-1;
}
}
void solve()
{
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
a=x[i];b=y[i];
c=x[j];d=y[j];
if(a>c){swap(a,c);swap(b,d);}
if(a==c&&b>d){swap(a,c);swap(b,d);}
ung=atan2(double(d-b),double(c-a));
++M[ung];
}
for(map<double,int>::iterator it=M.begin();it!=M.end();it++)SOL+=precalc[it->second];
printf("%d\n",SOL);
}