www.pudn.com > zju_1000_1010.rar > 1010.CPP


 #include 
 #include 
 
 
 struct point 
 {	double x,y; 
 }; 
 struct line 
 {	point a,b; 
 }; 
 
 double cal_area(point polygon[],int n) 
 { 
	double area=0; 
	area=polygon[0].y*(polygon[n-1].x-polygon[1].x); 
	for(int i=1;ib)?a:b); 
 } 
 double min(double a,double b) 
 { 
	return ((a>b)?b:a); 
 } 
 double multiply(point fir,point sec,point thi) 
 { 
	return ((fir.x-thi.x)*(sec.y-thi.y)-(sec.x-thi.x)*(fir.y-thi.y)); 
 } 
 int intersect(line fir,line sec) 
 { 
	return ((max(fir.a.x,fir.b.x)>=min(sec.a.x,sec.b.x))&& 
		(max(fir.a.y,fir.b.y)>=min(sec.a.y,sec.b.y))&& 
		(max(sec.a.x,sec.b.x)>=min(fir.a.x,fir.b.x))&& 
		(max(sec.a.y,sec.b.y)>=min(fir.a.y,fir.b.y))&& 
		(multiply(fir.a,sec.a,sec.b)*multiply(sec.a,fir.b,sec.b)>=0)&& 
		(multiply(sec.b,fir.a,fir.b)*multiply(fir.a,sec.a,fir.b)>=0) 
	       ); 
 } 
 int is_possible(point polygon[],int n) 
 { 
	int i,j; 
	for(i=0;i>n; 
		if(n==0) break; 
		if(flag) cout<>polygon[i].x>>polygon[i].y; 
		cout<<"Figure "<