Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

分十六种情况,看我怎样不怕累!!!,唉,菜鸟只能这样

Posted by 421 at 2009-04-28 20:47:33 on Problem 1624
#include <stdio.h>
#include <math.h>

typedef struct point
{
    double x;
	double y;
}point;

point p[10];

double map1(point p1,point p2,point p3,point p4)
{
	double s=0;
	s+=p1.x*p2.y-p2.x*p1.y;
	s+=p2.x*p3.y-p3.x*p2.y;
	s+=p3.x*p4.y-p4.x*p3.y;
	s+=p4.x*p1.y-p1.x*p4.y;
	s=s/2.0;
	return fabs(s);
}
double map2(point p1,point p2,point p3)
{
	double s=0;
	s+=p1.x*p2.y-p2.x*p1.y;
	s+=p2.x*p3.y-p3.x*p2.y;
	s+=p3.x*p1.y-p1.x*p3.y;
	s=s/2.0;
	return fabs(s);
}
int main()
{
	int i,test=0;
	while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&p[1].x,&p[1].y,&p[3].x,&p[3].y,&p[5].x,&p[5].y,&p[7].x,&p[7].y)!=EOF)
	{
		if(p[1].x==0&&p[1].y==0&&p[3].x==0&&p[3].y==0&&p[5].x==0&&p[5].y==0&&p[7].x==0&&p[7].y==0)
			break;
		p[2].x=(p[1].x+p[3].x)/2.0;p[2].y=(p[1].y+p[3].y)/2.0;
        p[4].x=(p[3].x+p[5].x)/2.0;p[4].y=(p[3].y+p[5].y)/2.0;
		p[6].x=(p[5].x+p[7].x)/2.0;p[6].y=(p[5].y+p[7].y)/2.0;
		p[8].x=(p[7].x+p[1].x)/2.0;p[8].y=(p[7].y+p[1].y)/2.0;
		double max=100000000;
		double s=map1(p[1],p[3],p[5],p[7])/2.0,s1,s2;
		if(max>fabs(s-map2(p[1],p[3],p[4])))
		{
			max=fabs(s-map2(p[1],p[3],p[4]));
            s1=2*s-map2(p[1],p[3],p[4]);
			s2=map2(p[1],p[3],p[4]);
		}
		if(max>fabs(s-map2(p[1],p[3],p[5])))
		{
			max=fabs(s-map2(p[1],p[3],p[5]));
            s1=2*s-map2(p[1],p[3],p[5]);
			s2=map2(p[1],p[3],p[5]);
		}
		if(max>fabs(s-map2(p[1],p[7],p[6])))
		{
			max=fabs(s-map2(p[1],p[7],p[6]));
            s1=2*s-map2(p[1],p[7],p[6]);
			s2=map2(p[1],p[7],p[6]);
		}
		if(max>fabs(s-map2(p[2],p[3],p[4])))
		{
			max=fabs(s-map2(p[2],p[3],p[4]));
            s1=2*s-map2(p[2],p[3],p[4]);
			s2=map2(p[2],p[3],p[4]);
		}
		if(max>fabs(s-map2(p[2],p[3],p[5])))
		{
			max=fabs(s-map2(p[2],p[3],p[5]));
            s1=2*s-map2(p[2],p[3],p[5]);
			s2=map2(p[2],p[3],p[5]);
		}
		if(max>fabs(s-map1(p[2],p[3],p[5],p[6])))
		{
			max=fabs(s-map1(p[2],p[3],p[5],p[6]));
            s1=2*s-map1(p[2],p[3],p[5],p[6]);
			s2=map1(p[2],p[3],p[5],p[6]);
		}
		if(max>fabs(s-map2(p[1],p[2],p[7])))
		{
			max=fabs(s-map2(p[1],p[2],p[7]));
            s1=2*s-map2(p[1],p[2],p[7]);
			s2=map2(p[1],p[2],p[7]);
		}
		if(max>fabs(s-map2(p[1],p[2],p[8])))
		{
			max=fabs(s-map2(p[1],p[2],p[8]));
            s1=2*s-map2(p[1],p[2],p[8]);
			s2=map2(p[1],p[2],p[8]);
		}
		if(max>fabs(s-map2(p[3],p[5],p[6])))
		{
			max=fabs(s-map2(p[3],p[5],p[6]));
            s1=2*s-map2(p[3],p[5],p[6]);
			s2=map2(p[3],p[5],p[6]);
		}
		if(max>fabs(s-map2(p[3],p[5],p[7])))
		{
			max=fabs(s-map2(p[3],p[5],p[7]));
            s1=2*s-map2(p[3],p[5],p[7]);
			s2=map2(p[3],p[5],p[7]);
		}
		if(max>fabs(s-map2(p[1],p[3],p[8])))
		{
			max=fabs(s-map2(p[1],p[3],p[8]));
            s1=2*s-map2(p[1],p[3],p[8]);
			s2=map2(p[1],p[3],p[8]);
		}
		if(max>fabs(s-map2(p[4],p[5],p[6])))
		{
			max=fabs(s-map2(p[4],p[5],p[6]));
            s1=2*s-map2(p[4],p[5],p[6]);
			s2=map2(p[4],p[5],p[6]);
		}
		if(max>fabs(s-map2(p[4],p[5],p[7])))
		{
			max=fabs(s-map2(p[4],p[5],p[7]));
            s1=2*s-map2(p[4],p[5],p[7]);
			s2=map2(p[4],p[5],p[7]);
		}
		if(max>fabs(s-map1(p[4],p[5],p[7],p[8])))
		{
			max=fabs(s-map1(p[4],p[5],p[7],p[8]));
            s1=2*s-map1(p[4],p[5],p[7],p[8]);
			s2=map1(p[4],p[5],p[7],p[8]);
		}
		if(max>fabs(s-map2(p[5],p[7],p[8])))
		{
			max=fabs(s-map2(p[5],p[7],p[8]));
            s1=2*s-map2(p[5],p[7],p[8]);
			s2=map2(p[5],p[7],p[8]);
		}
		if(max>fabs(s-map2(p[6],p[7],p[8])))
		{
			max=fabs(s-map2(p[6],p[7],p[8]));
            s1=2*s-map2(p[6],p[7],p[8]);
			s2=map2(p[6],p[7],p[8]);
		}
		if(s1<s2)
			printf("Cake %d: %.3lf %.3lf\n",++test,s1,s2);
		else
			printf("Cake %d: %.3lf %.3lf\n",++test,s2,s1);
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator