Pagini recente » Cod sursa (job #1382610) | Cod sursa (job #950063) | Cod sursa (job #93512) | Cod sursa (job #1060463) | Cod sursa (job #610621)
Cod sursa(job #610621)
#include<cstdio>
#include<math.h>
#include<algorithm>
#define eps 0.00000000000001
#define inf 2000000001
using namespace std;
struct TRAPEZ
{
int x;
int y;
};
TRAPEZ p[1005];
double panta (TRAPEZ P1, TRAPEZ P2)
{
if(P1.x==P2.x)
return inf;
return(double)(P2.y-P1.y)/(P2.x-P1.x);
}
double pante[100005];
int cnt2,i,j,n,aux1,aux2,sol,cnt;
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&aux1,&aux2);
p[i].x=aux1;p[i].y=aux2;
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
pante[++cnt]=panta(p[i],p[j]);
sort(pante+1, pante+cnt+1);
for(i=1;i<cnt;i++)
if(pante[i+1]-pante[i]<eps)
cnt2++;
else
{
sol=sol+cnt2*(cnt2+1)/2;
cnt2=0;
}
printf("%d\n",sol);
return 0;
}