Pagini recente » Cod sursa (job #1037403) | Cod sursa (job #2832563) | Cod sursa (job #1117713) | Cod sursa (job #628934) | Cod sursa (job #2237730)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin ("trapez.in");
ofstream fout ("trapez.out");
struct POINT
{
double x,y;
};
double dist (POINT P1, POINT P2)
{
return sqrt((P1.x-P2.x)*(P1.x-P2.x)+(P1.y-P2.y)*(P1.y-P2.y));
};
float panta (POINT P1,POINT P2)
{
return (P1.x-P2.x)/(P1.y-P2.y);
};
int main()
{
int N,tx,ty,i,r=1,tr=0,j,vert=0,oriz=0;
int pan[50000];
POINT p[1000];
fin>>N;
for(i=1;i<=N;i++)
{
fin>>tx>>ty;
p[i].x=tx;p[i].y=ty;
}
for(i=1;i<N;i++)
{
for(j=i+1;i<=N;i++)
{
if(p[i].x==p[j].x)
vert++;
else
{
if(p[i].y==p[j].y)
oriz++;
else
{
pan[r]=panta(p[i],p[j]);
r++;
}
}
}
}
for(i=1;i<r-1;i++)
{
for(j=i+1;j<r;j++)
{
if(i!=j && pan[i]==pan[j])
tr++;
}
}
tr=tr+vert*(vert-1)*0.5+oriz*(oriz-1)*0.5;
fout<<tr;
return 0;
}