Pagini recente » Cod sursa (job #506549) | Cod sursa (job #535344) | Cod sursa (job #2681947) | Cod sursa (job #2074955) | Cod sursa (job #358843)
Cod sursa(job #358843)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*s;
int n,i,j,k,rez;
struct punct
{
int x;
int y;
};
punct v1[1005],v2[1000005];
int cmp(punct a, punct b)
{
if(a.x!=b.x)
return a.x<b.x;
else
return a.y<b.y;
}
int main()
{
f=fopen("trapez.in","r");
s=fopen("trapez.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d %d",&v1[i].x,&v1[i].y);
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
k++;
v2[k].x=v1[j].y-v1[i].y;
v2[k].y=v1[j].x-v1[i].x;
}
}
/*
for(i=1;i<=k;i++)
{
while(v2[i].x%2==0&&v2[i].y%2==0)
{
v2[i].x/=2;
v2[i].y/=2;
}
for(j=3;j<=v2[i].x && j<=v2[i].y;j+=2)
{
while(v2[i].x%j==0&&v2[i].y%j==0)
{
v2[i].x/=j;
v2[i].y/=j;
}
}
}
sort(v2+1,v2+k+1,cmp);
*/
for(i=1;i<k;i++)
{
for(j=i+1;j<=k;j++)
{
if(v2[i].x*v2[j].y==v2[i].y*v2[j].x)
rez++;
}
}
fprintf(s,"%d",rez);
fclose(s);
return 0;
}