可怜的绵羊问题
★★
输入文件:
sheep.in
输出文件:
sheep.out
简单对比
时间限制:1 s
内存限制:128 MiB
【问题描述】
阿里是一个老实巴交的牧羊人,他有一块地,这块地周边插着一些树桩,阿里用一根粗绳顺次将这些树桩联结起来,构成一个凸多边形,这个多边形就是他的牧羊场了。阿里就是靠自己辛勤的劳动卖羊毛挣钱的。过冬了,今年特别冷,所以羊毛的销量特别好,阿里看着自己的绵羊心里十分高兴。然而住在附近的财主见到了阿里的收成十分眼红,他在阿里的牧场里某些地方下了毒药,想毒死阿里的绵羊。阿里知道了这件事情,但他知道自己斗不过这个财主,他只能忍受着,他所能做的就是把自己的牧羊场缩小,即挑选出一些树桩,用绳子把牧羊场重新按顺序围成,以保证牧羊场里的草没有毒药。阿里不希望他的牧羊场被分隔开,所以围成牧羊场后任意两段绳子除在树桩顶点外不能相交。他希望新的牧羊场的面积能尽可能大。但他不知道具体是多少,你能帮他计算出来吗?
【输入格式】
输入格式:
输入数据第l行是一个整数,n(1≤n≤100),表示树桩的数目。接下来有n行,每行两个整数xi,yi(|xi|≤10000,|yi|≤10000),按逆时针顺序给出各个树桩所在的坐标,这些树桩顺次相连成一个凸多边形(该多边形只是形状是凸的,即某些树桩可能会落在多边形边上)。然后一个整数m(1≤m≤100),表示财主下毒的地点数,跟着_m行,每行两个整数pi,qi(|qi|≤10000,|qi|≤10000),即财主下毒地点的坐标,该坐标点可能落在多边形边上或外面,但财主当然不会笨到在树桩上下毒。
【输出格式】
输出格式:
输出文件只有一行,为重新安排后牧羊场的最大面积,答案保留两位小数。如果不可能围成一个新牧羊场,则输出一行字串“die”(不包含引号)。
注意重新围成后某段绳子可能会经过下毒的坐标,这是允许的。
【输入输出样例】
输 入
4
2 2
-2 2
-2 -2
2 -2
2
0 0
-1 1
输 出
8.00
输出如图4.6.1所示,粗边为新围成的牧羊场,它的面积为8。