Pagini recente » Cod sursa (job #2909561) | Cod sursa (job #709275) | Cod sursa (job #3299981) | Cod sursa (job #1072701) | Cod sursa (job #497333)
Cod sursa(job #497333)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f=fopen("trapez.in","r"),*g=fopen("trapez.out","w");
int n,i,j,k,sol;
struct punct{int x;int y;};
struct dreapta{int dx;int dy;};
punct a[1001];
dreapta z[1000001];
int cmp(dreapta x,dreapta y)
{ return (x.dx*y.dy>x.dy*y.dx);}
int main(void)
{
fscanf(f,"%d",&n);
k=0;
for (i=1;i<=n;i++)
{
fscanf(f,"%d%d",&a[i].x,&a[i].y);
for (j=1;j<i;j++)
{
z[++k].dx=a[i].x-a[j].x;
z[k].dy=a[i].y-a[j].y;
}
}
sort(z+1,z+k+1,cmp);
i=1;
while (i<k)
{
int c=1;
while (z[i].dx*z[i+1].dy==z[i+1].dx*z[i].dy && i<k)
{i++; c++;}
sol+=c*(c-1)/2;
if (c==1) i++;
}
fprintf(g,"%d\n",sol);
return 0;
}