Pagini recente » Cod sursa (job #633223) | Cod sursa (job #1053259) | Cod sursa (job #1452003) | Statistici Florin Andrus (florinandrus) | Cod sursa (job #1818852)
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MaxN 1001
#define eps 0.00000001
#define INF 2140000000
#define MAX 131072
using namespace std;
FILE *IN,*OUT;
int N,Size=0;
long long Ans=0;
struct point
{
int x,y;
}v[MaxN];
double panta[MaxN*MaxN];
int main()
{
IN=fopen("trapez.in","r");
OUT=fopen("trapez.out","w");
fscanf(IN,"%d",&N);
for(int i=1;i<=N;i++)
fscanf(IN,"%d%d",&v[i].x,&v[i].y);
for(int i=1;i<N;i++)
for(int j=i+1;j<=N;j++)
{
if((v[i].x-v[j].x)!=0)
panta[++Size]=(double)(v[i].y-v[j].y)/(v[i].x-v[j].x);
else panta[++Size]=INF;
}
panta[Size+1]=-INF;
sort(panta+1,panta+1+Size);
int Start=1;
for(int i=1;i<=Size+1;i++)
{
if(abs(panta[Start]-panta[i])>eps)
{
Ans+=(i-Start-1)*(i-Start)/2;
Start=i;
}
}
fprintf(OUT,"%d",Ans);
return 0;
}