Pagini recente » Cod sursa (job #848879) | Cod sursa (job #2012698) | Cod sursa (job #1662045) | Cod sursa (job #822949) | Cod sursa (job #20744)
Cod sursa(job #20744)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
long i,j,n,m,trap;
float a[1000000],x[1001],y[1001];
void quick(long li, long ls)
{
long i,j; float x,y;
i=li; j=ls; x=a[(li+ls)/2];
while (i<=j)
{
while (a[i]>x) i++;
while (a[j]<x) j--;
if (i<=j)
{
y=a[i]; a[i]=a[j]; a[j]=y;
i++; j--;
}
}
if (i<ls) quick(i,ls);
if (j>li) quick(li,j);
}
int main()
{
FILE *f=fopen("trapez.in","r");
fscanf(f,"%ld",&n);
for (i=1;i<=n;i++)
fscanf(f,"%ld%ld",&x[i],&y[i]);
fclose(f);
long h=0;
// printf("\n");
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
if (i != j)
{
h++;
if (x[j]-x[i] == 0)
a[h]=0;
else if (y[j]-y[i] == 0)
a[h]=2500000000;
else a[h]=(y[j]-y[i])/(x[j]-x[i]);
// printf("%ld %ld %f\n",i,j,a[h]);
}
quick(1,h);
trap=0;
for (i=1;i<=h-1;i++)
if (a[i]==a[i+1])
trap++;
FILE *g=fopen("trapez.out","w");
fprintf(g,"%ld",trap);
fclose(g);
return 0;
}