Pagini recente » Cod sursa (job #2029398) | Cod sursa (job #1762726) | Cod sursa (job #1067631) | Cod sursa (job #1748883) | Cod sursa (job #693952)
Cod sursa(job #693952)
#include<cstdio>
#include<cmath>
#include<algorithm>
#define epsilon 0.0000000000001
using namespace std;
void read(),solve();
int n,i,x[1010],y[1010],precalc[1010],SOL,j,X,k;
double ung,M[500600],cnt;
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++)
M[++k]=atan2(double(y[j]-y[i]),double(x[j]-x[i]));
sort(M+1,M+precalc[n]+1);
cnt=M[1];X=1;
for(i=2;i<=precalc[n];i++)
{
if(M[i]-cnt<=epsilon)
{
++X;
continue;
}
SOL+=precalc[X];
X=1;
cnt=M[i];
}
//SOL+=precalc[X];
printf("%d\n",SOL);
}