Pagini recente » Cod sursa (job #1504827) | Cod sursa (job #496897) | Cod sursa (job #1002560) | Cod sursa (job #378316) | Cod sursa (job #681707)
Cod sursa(job #681707)
#include <stdio.h>
#include <algorithm>
#include <cmath>
#define INF 1000000.0
using namespace std;
int n,i,j;
int A[1005],B[1005];
int q,rez,cont;
double NOU[1000005];
FILE *f,*g;
double do_it(int a, int b, double c, double d)
{
if (a==b)
return INF;
return (1.0 * (d - c)) / (1.0 * (b - a));
}
bool equal(double a, double b)
{
if (fabs(a-b)<=0.000000001)
return 1;
return 0;
}
int main()
{
f=fopen("trapez.in","r");
g=fopen("trapez.out","w");
fscanf(f,"%d",&n);
for (i=1;i<=n;++i)
fscanf(f,"%d%d",&A[i],&B[i]);
q=0;
for (i=1;i<=n-1;++i)
for (j=i;j<=n;++j)
{
q++;
NOU[q]=do_it(A[i],A[j],B[i],B[j]);
}
sort(NOU+1,NOU+q+1);
rez=cont=0;
for (i=1;i<=q-1;++i)
if (equal(NOU[i],NOU[i+1]))
cont++;
else
{
rez+=(cont*(cont+1)/2);
cont=0;
}
fprintf(g,"%d\n",rez);
fclose(f);
fclose(g);
return 0;
}