Pagini recente » Cod sursa (job #2027059) | Cod sursa (job #3184464) | Cod sursa (job #1383367) | Cod sursa (job #1543137) | Cod sursa (job #77067)
Cod sursa(job #77067)
#include <stdio.h>
struct pct{
int x,y;
};
int n,i,a[1000000],b[1000000],j,q,p,aux,x;
pct v[1005];
int main()
{FILE *fin,*fout;
fin=fopen("trapez.in","r");
fscanf(fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf(fin,"%d %d",&v[i].x,&v[i].y);
fclose(fin);
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
{p++;
a[p]=v[i].y-v[j].y;
b[p]=v[i].x-v[j].x;
if ((a[p]<0) && (b[p]<0)) {a[p]=-a[p];b[p]=-b[p];}
else
if (a[p]<0) a[p]=-a[p];
else
if (b[p]<0) b[p]=-b[p];
}
x=0;
while (x==0)
{x=1;
for (i=1;i<p;i++)
for (j=i+1;j<=p;j++)
if ((a[i]>0)&&(a[j]<0)) {aux=a[i];a[i]=a[j];a[j]=aux;
aux=b[i];b[i]=b[j];b[j]=aux;
x=0;
}
else
if ((a[i]>0)&&(a[j]>0))
{if (a[i]*b[j]>a[j]*b[i]){aux=a[i];a[i]=a[j];a[j]=aux;
aux=b[i];b[i]=b[j];b[j]=aux;
x=0;
}
}
else
if ((a[i]<0)&&(a[j]<0))
if (a[i]*b[j]<a[j]*b[i]) {aux=a[i];a[i]=a[j];a[j]=aux;
aux=b[i];b[i]=b[j];b[j]=aux;
x=0;
}
}
for (i=1;i<p;i++)
if (a[i]*b[i+1]==a[i+1]*b[i])
{j=1;
while (a[i]*b[i+j]==a[i+j]*b[i]) {j++;q++;}
}
fout=fopen("trapez.out","w");
fprintf(fout,"%d",q);
fclose(fout);
return 0;
}