| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
分十六种情况,看我怎样不怕累!!!,唉,菜鸟只能这样#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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator