游客 Signup | Login
中文 | En

1152 - C语言5.14

有4个圆塔,圆心分别为(2,2),(-2,2),(2,-2),(-2,-2),圆半径为1。这4个塔的高度分别为10m,塔以外无建筑物。现在输入任一点的坐标,求该点的建筑高度(塔外的高度为0)。

Input

两个用空格分隔的实数,表示输入的点坐标。

Output

输入坐标位置的建筑高度,保留2位小数。

请注意行尾输出换行。

Examples

Input

2.1 2.3

Output

10.00

Solution C

#include <stdio.h>
int main() {
        int h = 10;
        float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2;
        float x,y,d1,d2,d3,d4;
        scanf("%f %f", &x, &y);                                     
        d1=(x-x1) * (x-x1)+(y-y1) * (y-y1);
        d2=(x-x2) * (x-x2)+(y-y2) * (y-y2);
        d3=(x-x3) * (x-x3)+(y-y3) * (y-y3);
        d4=(x-x4) * (x-x4)+(y-y4) * (y-y4);
        if (d1>1 && d2>1 && d3>1 && d4>1) h=0;       
        printf("%.2f\n", h + .0);
        return 0;
}

Solution C++

#include <stdio.h>
int main() {
	int h = 10;
	float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2;
	float x,y,d1,d2,d3,d4;
	scanf("%f %f", &x, &y);					/*求该点到各中心点的距离*/
	d1=(x-x1) * (x-x1)+(y-y1) * (y-y1);
	d2=(x-x2) * (x-x2)+(y-y2) * (y-y2);
	d3=(x-x3) * (x-x3)+(y-y3) * (y-y3);
	d4=(x-x4) * (x-x4)+(y-y4) * (y-y4);
	if (d1>1 && d2>1 && d3>1 && d4>1) h=0;	/*判断该点是否在塔外*/
	printf("%.2f\n", h + .0);
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题