Pagini recente » Cod sursa (job #2373193) | Cod sursa (job #1632639) | Cod sursa (job #1802006) | Cod sursa (job #509240) | Cod sursa (job #681717)
Cod sursa(job #681717)
#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)
{
if (A[a]==A[b])
return INF;
//return (1.0 * (d - c)) / (1.0 * (b - a));
return (1.0 * (B[b] - B[a])) / (1.0 * (A[b] - A[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(i,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;
}