Pagini recente » Cod sursa (job #2896005) | Cod sursa (job #1339636) | Cod sursa (job #63929) | Cod sursa (job #277091) | Cod sursa (job #2749070)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
struct point
{
double x,y;
};
double dist(point p1, point p2)
{
return sqrt((p2.y-p1.y)*(p2.y-p1.y)+(p2.x-p1.x)*(p2.x-p1.x));
}
bool ver (point pa1, point pa2, point pb1, point pb2)
{
double a1,b1,c1,a2,b2,c2;
a1=pa1.y-pa2.y;
b1=pa1.x-pa2.x;
c1=pa1.x*pa2.y-pa2.x*pa1.y;
a2=pb1.y-pb2.y;
b2=pb1.x-pb2.x;
c2=pb1.x*pb2.y-pb2.x*pb1.y;
if(a1*b2==b1*a2 && c2*b1!=c1*b2)
return 1;
else
return 0;
}
point v[1002];
int main()
{
int n,i,ok=0,cnt=0,j,y,l;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i].x>>v[i].y;
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
for(y=1;y<=n;y++)
{
if(y!=i && y!=j)
for(l=y+1;l<=n;l++)
if(l!=i || l!=j)
{
ok=ver( v[i], v[j], v[y], v[l] );
if(ok==1)
{
cnt++;
ok=0;
}
}
}
}
fout<<cnt/2;
return 0;
}