描述

9月10日教师节,也是YuYu的生日,妈妈给YuYu准备了一个很大的圆形蛋糕,YuYu看中了蛋糕中间那诱人的樱桃(都挤到一块啦),小家伙很高兴,心里开始盘算着如何将樱桃全部分给自己。YuYu是个“孝顺”的孩子,汗~~,每次自己不喜欢吃的都是很客气的多分点给爸妈吃,而且一定要事先尝一下(生怕爸妈吃到嘴里烫着O(∩_∩)O哈哈~),因此她开始很积极的分蛋糕了。为了简化问题,我们假设所有的樱桃合起来半径为0,即不考虑其大小。现在家里有4个人,除了一家3口,还有朋友的孩子Ayao。YuYu先在蛋糕边上找了3个点p1、p2,p3,分别沿p1p2、p2p3、p3p1切了3刀,边上的分给了其他人,最后剩下的就归自己啦(哈哈,这里全是樱桃)。不过小家伙明白自己不能拿最大的一份,否则会被妈妈打屁屁的。假如已知樱桃的位置,现在的问题是要你判断YuYu是不是分到了樱桃,而且自己分到的蛋糕是不是最大的。
如果YuYu切的时候樱桃刚好落在刀上,小家伙会想方设法把樱桃占为己有,因此也算分到了樱桃。

输入

输入数据有多组,每组数据占一行,分别包含p1、p2、p3的坐标x1、y1、x2、y2、x3、y3,以及樱桃的位置p的坐标x、y。其中p1、p2、p3不共线且任何两个点不重合。所有数据均为整数。
输入以EOF结束。

输出

如果YuYu分到了樱桃,而且自己分到的蛋糕大小不是最大(与某个人一样大也算不是最大),那么输出:Happy Birthday!
如果YuYu分到了樱桃,但自己分到的蛋糕大小是最大的,那么输出:Greedy!
如果YuYu没有分到蛋糕上的樱桃则输出:Cry!
如果樱桃根本不可能在蛋糕上(在边上也算在蛋糕上),呵呵,那有可能小家伙在做白日梦!则输出:Happy Dream!

样例输入

0 0 1 1 -1 1 0 2
0 0 1 1 -1 1 0 1
0 0 1 1 -1 1 0 3
0 0 3 4 -3 4 0 1

样例输出

Cry!
Happy Birthday!
Happy Dream!
Greedy!

题意

有4个点,p1,p2,p3形成一个三角形为yuyu分得的,外接圆为蛋糕

给你4个点,p1,p2,p3,p4,然后p1,p2,p3形成1个三角形,求出它的外接圆

1.如果p4在外接圆外输出Happy Dream!

2.如果p4不在三角形内输出Cry!

3.如果三角形面积是剩下3块面积中最大的输出Greedy!

否则输出Happy Birthday!

题解

对于1,已知三点求圆心和半径,三个点带入(x-cirx)2+(y-ciry)2=R2然后算一年后可得cirx和ciry和R

对于2,p4如果在三角形外,p4和p1,p2,p3任意两个点面积总和大于三角形面积

对于3,剩下三块面积,每块面积就是求出扇形面积减去三角形面积

PS:被这个破题卡精度了,话说这个配图很吊

代码

 #include<bits/stdc++.h>
using namespace std; struct point
{
double x,y;
point(double x=,double y=):x(x),y(y){}
}p[];
double area(point a,point b,point c)
{
return fabs((b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y))*0.5;
}
double dis2(point a,point b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
point circle(point a,point b,point c)
{
double x=((a.y-b.y)*((a.x*a.x-c.x*c.x+a.y*a.y-c.y*c.y)*0.5)-(a.y-c.y)*((a.x*a.x-b.x*b.x+a.y*a.y-b.y*b.y)*0.5))/((a.y-b.y)*(a.x-c.x)-(a.x-b.x)*(a.y-c.y));
double y=((a.x-c.x)*((a.x*a.x-b.x*b.x+a.y*a.y-b.y*b.y)*0.5)-(a.x-b.x)*((a.x*a.x-c.x*c.x+a.y*a.y-c.y*c.y)*0.5))/((a.y-b.y)*(a.x-c.x)-(a.x-b.x)*(a.y-c.y));
return point(x,y);
}
double area_s(point a,point b,point cir)
{
return acos((*dis2(a,cir)-dis2(a,b))/(*dis2(a,cir)))*dis2(a,cir)*0.5-area(a,b,cir);
}
int main()
{
while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&p[].x,&p[].y,&p[].x,&p[].y,&p[].x,&p[].y,&p[].x,&p[].y)!=EOF)
{
point cir=circle(p[],p[],p[]);
if(dis2(p[],cir)>dis2(p[],cir)){printf("Happy Dream!\n");continue;}
if(area(p[],p[],p[])+area(p[],p[],p[])+area(p[],p[],p[])>area(p[],p[],p[])){printf("Cry!\n");continue;}
double s4=area(p[],p[],p[]);
if(s4>area_s(p[],p[],cir)&&s4>area_s(p[],p[],cir)&&s4>(area_s(p[],p[],cir)))printf("Greedy!\n");
else printf("Happy Birthday!\n");
}
return ;
}

最新文章

  1. 修改项目生成Gemfile的模板
  2. Java中实现PHP中的urlencode与rawurlencode
  3. 笔记之Python网络数据采集
  4. SQL PROMPT 取消dbo前缀
  5. 配置apache、php、mysql之间的关系
  6. ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
  7. 中断服务程序(Interrupt Service Routines,ISR)注意事项
  8. Labeling Balls
  9. ThinkPHP 框架模型
  10. STM32f103x IAP远程升级小结
  11. 20170109| javascript记录
  12. MySQL/MariaDB系列文章目录
  13. CSS背景与边框属性-----box-shadow
  14. postgresql逻辑结构--用户及权限管理(七)
  15. IT建设如何面对“短板”和“孤峰”?
  16. 16个非常酷的jQuery插件
  17. C#跨线程操作UI
  18. Teamwork(The fifth day of the team)
  19. python自动化之word文档
  20. [WorldWind学习]23.TerrainAccessor

热门文章

  1. mingw 设置python 设置git环境变量
  2. ABAP-1-会计凭证批量数据导入本地ACCESS
  3. The Roadmap of my web learning.
  4. C# 模拟鼠标操作
  5. 深入Spring Boot:怎样排查expected single matching bean but found 2的异常
  6. 使用hibernate与mysql时数据不能插入的原因及解决办法
  7. How to Pronounce Work vs. Walk
  8. Oracle数据文件转移操作
  9. CentOS 6.x 默认源中带了mysql-server,可以使用yum安装。
  10. Oracle数据库操作总是显示运行中无法成功,删除表时报错 resource busy and acquire with NOWAIT specified